Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

git常用命令

2018-01-15

删除远程分支

git push origin :branch-name

or 

git push origin --delete branch-name

删除本地分支

git branch -d  branch-name

克隆远程分支同时创建本地分支

$ git clone http://gitlab.jianlc.tp/finance/jianlc-deal.git -b branch-name

git创建本地分支与远程分支关联

已经有远程分支
git checkout -b dev 新建并切换到本地dev分支

git pull origin dev 本地分支与远程分支相关联

还没有远程分支
git checkout -b test

git push origin test   这样远程仓库中也就创建了一个test分支

查看本地分支和远程分支对应关系


git branch -vv

回退到某个历史版本


获取历史版本id:

git log 

然后回退回某个版本:

git reset --hard versionID

远程分支已经被删除,本地分支还在,一键清除

git remote prune origin

查看远程分支

$ git branch -a 

查看本地分支


$ git branch

切换分支

$ git checkout n


git push/ pull 的使用

git push


$ git push <远程主机名> <本地分支名>:<远程分支名>

注意: 命令中的本地分支是指将要被推送到远端的分支,而远程分支是指推送的目标分支,即将本地分支合并到远程分支。 如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

推送master分支

$ git push origin master


上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 
origin是一个远程厂库地址。


如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,这条命令是删除远程master分支。

$ git push origin :master
# 等同于
$ git push origin --delete master

上面命令表示删除origin主机的master分支。

如果当前分支与远程分支之间存在追踪关系(即分支名相同),则本地分支和远程分支都可以省略。


$ git push origin

将当前分支推送到origin主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

$ git push

如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master

将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用–force选项。

$ git push --force origin


上面命令使用–force选项,结果导致在远程主机产生一个”非直进式”的合并(non-fast-forward

merge)。除非你很确定要这样做,否则应该尽量避免使用–force选项。

git push不会推送标签(tag),除非使用–tags选项。

$ git push origin --tags

git pull

git pull 与 git push操作的目的相同,但是操作的目标相反

git pull <远程主机> <远程分支>:<本地分支>


git pull origin master:my_test

上面的命令是将origin厂库的master分支拉取并合并到本地的my_test分支上。

如果省略本地分支,则将自动合并到当前所在分支上。

git pull origin master

完整流程


$git clone <远程Arepository> #克隆你fork出来的分支

$git remote add <远程Brepository标签> git@github.com:XXXX/ceph.git #添加远程Brepository标签

$git pull <远程B厂库标签> master:master  #从远程Brepository的master分支拉取最新objects合并到本地master分支

$git checkout YYYY #切换到要修改的分支上

$git branch develop; git checkout develop #在当前分支的基础上创建一个开发分支,并切换到该分支上,你将在该分支上coding

coding...... #在工作区coding

$git add .#将修改保存到索引区

$git commit -a #将修改提交到本地分区

$git push origin my_test:my_test #将本地分支my_test提交到远程A repository的my_test分支上



上一篇 Builder模式

评论