git使用(1)----推送代码到远程
git使用(1)
首先要明白git上有三个区域
1.工作区
2.暂存区
3.历史记录区
步骤:
1.git init
2.配置环境(如果配置一次了以后就不用再继续配置)
git config --global user.name “username”
git config --global user.email “email”
3.在本地版本库设置远程版本库的别名:
git remote add 版本库别名 <库地址>
比如:git remote add origin 项目链接
git remote -v : 显示远程仓库信息
假如遇到错误提示:fatal: remote origin already exists.
解决:git remote rm origin ,然后再执行前面的add操作
4.显示当前分支
git branch -a ---显示所有分支
git branch -r ---显示远程分支
5.假如在此时新增分支会报错:fatal: Not a valid object name: 'master'
应该先commit
git commit –m ”注释“
6.添加本地分支
git branch 本地分支名字
7.切换分支
git checkout 本地分支名
假如要把6、7步合并:git checkout -b 本地分支名
这样就创建新分支的同时立即切换到刚创建好的分支
8.添加本地文件到暂存区
git add 文件名(如果添加整个目录就加入-A参数,假如要进入该目录下推送目录内的文件,要重新操作前面的commit和checkout)
然后再commit
9.推送暂存区到远程
git push origin 本地分支:远程分支 (远程分支可以不填)
如果远程分支不写,则表示将本地分支推送与之存在跟踪关系的远程分支(一般同名),如果该远程分支不存在,会自动创建
比如git push origin master
上面的命令就是把本地的master分支推送到origin主机的master分支,如果后面的那个master不存在,那么就会自动创建
如果遇到 错误提示:error:failed to push som refs to.......
解决:git pull origin 分支名 ----先把远程仓库的文件拉到本地,再push
假如从master创建一个新分支(假设叫test),使用git push origin master提交,显示'Everything up-to-date'
原因是git push origin master在没有跟踪远程分支的本地分支默认提交了master分支,因为master分支默认指向origin master分支,这时应该要:
git push origin test:master
git push origin test:master // 提交本地test分支作为远程的master分支
git push origin test:test // 提交本地test分支作为远程的test分支
git push origin :test //远程分支被删除,但是本地分支保存
git push origin --delete test //同上
如果想节省后续操作,可以试试
git push -u origin master //指定origin为主机,后续操作就不用加参数了,直接使用git push(对于同个目录)
如果要把本地所有分支都推送到主机origin:
git push -all origin
如果要附带标签:
git push origin --tags
10.修改冲突或更新文件
(从任意远程版本库中取来修改变化,并合并到当前检出的本地分支)
假如本地更新了文件再push,远程没有更新,会发送冲突,使用
git pull origin 远程分支:本地分支
把远程文件拉到本地与本地分支合并
修改之后要再commit再推送
如果远程分支和当前本地分支合并,冒号后面的可以省略(类似先git fetch再git merge)
实际上pull命令并不是很安全(建议用fetch(它取回的代码对你本地的开发代码没有影响)和merge),如果远程删除某个分支,默认git pull不会在拉取远程分支时删除对应的本地分支。但是如果加上参数-p(git pull -p)就会在本地删除远程已经删除的分支
这样的命令也类似:
git fetch --prune origin
git fetch -p
修改远程仓库:git remote set-url origin 新链接地址
git的跟踪关系:
某些情况下,git自动在本地和远程分支之间建立的,比如在git clone的时候所有的本地分支默认就是与远程主机origin的同名分支建立跟踪关系,本地分支将自动跟踪远程分支,比如主分支,本地master分支就会跟着origin/master
你也可以手动设置跟踪关系:
git branch --set-upstream master origin/test
本地master分支跟踪远程origin/test
就像前面的pull操作,可以直接用
git pull origin
当前本地分支自动和它跟踪的远程分支(针对建立了跟踪关系的适用)进行合并
如果当前的本地分支只有一个跟踪的远程分支
git pull
主机名都可以省略
按照上面的步骤基本能完成一个简单的推送
参考:http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html
(git常用命令)
http://rongjih.blog.163.com/blog/static/335744612010112562833316/
(Git常用操作命令,很全)
https://segmentfault.com/a/1190000003076490#articleHeader13
(Git学习总结,带图解)
http://josh-persistence.iteye.com/blog/2215214
(详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别)
git使用(1)----推送代码到远程的更多相关文章
- Git撤回已经推送(push)至远程仓库提交(commit)的版本
背景 所以,经常会遇到已经提交远程仓库,但是又不是我想要的版本,要撤下来. 回退版本一般使用git reset,又分为: # 不删除工作空间改动代码,撤销commit,不撤销git add . git ...
- xcode 版本控制推送代码到远程git仓库的步骤
一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...
- git 推送代码到远程端
git init git add . git commit -m "first commit" git remote add origin "地址" git p ...
- 【Git使用】强制推送代码到多个远程仓库
只吃了一个香蕉的晚上 一直预报的台风没有来,大盘也飘红了,世界好像变得越来越美好了似的.前两天,晚上下班坐地铁回家,靠在地铁门上看书,竟然坐到了终点站已全然不知,我也不知道我怎么了.怎么了.怎么了!最 ...
- 使用git推送代码到开源中国以及IDEA环境下使用git
使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...
- Git 推送和删除远程标签
事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs: git push origin 标签名 相当于 git push origin refs/tags/源标签名 ...
- 推送代码分支时出现:fatal: 'origin' does not appear to be a git repository
关于ubuntu进行提交本地分支到远程库出现问题: 解决方案: 执行如下命令: git remote add origin git@github.com:yourusername/test.git y ...
- git 打tag(版本)、推送代码
服务端:192.168.0.96 gitlab 客户端:192.168.0.97 git 服务端gitlab安装请参照: https://www.cnblogs.com/effortsing/p/10 ...
- git 创建标签推送远程分支
目录 git 创建标签推送远程分支 查看tag 创建tag 推送标签到远程仓库 删除tag git 创建标签推送远程分支 标签概念: tag, 对于迭代频繁的项目. 每一个标签可以理解为一个版本. 创 ...
随机推荐
- C++ Primer Plus学习:第六章
C++入门第六章:分支语句和逻辑运算符 if语句 语法: if (test-condition) statement if else语句 if (test-condition) statement1 ...
- 解决Ubuntu(Linux)平台下Sublime Text 3 安装中文输入支持库后 开启gnome-terminal报错的问题
在Ubuntu下安装Sublim Text3后发现无法输入中文,按照此链接的方法解决后.然后用下列代码配置C++的编译系统: { "cmd":["g++",&q ...
- 【BioCode】删除未算出PSSM与SS的蛋白质序列
代码说明: 由于一些原因(氨基酸序列过长),没有算出PSSM与SS,按照整理出来的未算出特征的文件,删除原来的蛋白质序列: 需删除的氨基酸文件732.txt(共732条氨基酸): 删除前 氨基酸共25 ...
- 关于WPS页面横向问题
上图 即可进行横向竖向页面设置
- Android自定义XML属性以及遇到的命名空间的问题
转载请注明出处:http://www.cnblogs.com/kross/p/3458068.html 最近在做一些UI,很蠢很蠢的重复写了很多代码,比如一个自定义的UI Tab,由一个ImageVi ...
- C语言为运算及 两个变量的赋值问题
#include <stdio.h>#define ARRAY_SIZE 10int main() { int arr[ARRAY_SIZE] = {51,116,53,120,85 ...
- Delphi 组件渐进开发浅谈(二)——双简合璧
2.双简合璧2.1.带有T[x]Label的T[x]Edit组件 请允许我用[x]的书写方式来表示不同的对象.因为随后将大量提及TLabeledEdit与TTntLabeledEdit.TCustom ...
- Vue.js 判断对象属性是否存,不存在添加
Vue.set是可以对对象添加属性的,这里item对象添加一个checked属性 //if(typeof item.checked=='undefined'){if(!this.item.checke ...
- Streaming Big Data: Storm, Spark and Samza--转载
原文地址:http://www.javacodegeeks.com/2015/02/streaming-big-data-storm-spark-samza.html There are a numb ...
- OSPF协议介绍及配置 (上)
OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...