Git(2)—特性

部分参见于 廖雪峰官方网站

  • 分支管理
git checkout -b dev     //建立新的分支dev
HEAD指针移至dev分支,之后就是在dev进行操作
git commit -m "D"      //进行一次新的提交
git checkout master   //将HEAD指针移至master分支
git merge dev        //将master分支向dev分支合并
git branch -d dev      //删除dev分支

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev  //创建分支
$ git checkout dev  //移动指针
Switched to branch 'dev'
$ git branch  //可以查看当前项目所含的所有分支
* dev
  master

  * HEAD指针当前指向的分支

当合并之后产生冲突时,需要先解决冲突,修改文件之后再次提交,再次合并即可。

Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

$ git merge --no-ff -m "merge with no-ff" dev
  • Bug分支
git stash 可以把当前工作现场“储藏”起来,等恢复现场后继续工作
//创建另一个分支修复代码,合并到master分支后,切换回之前工作的分支
$ git stash list  //查看stash内容
stash@{0}: WIP on dev: feb58f7 be_merged_finally
  1. git stash pop  //恢复的同时把stash内容也删了
  2. git stash apply stash@{0}  //恢复后,stash内容并不删除,你需要用git stash drop来删除;
  •  多人协作

当自己提交时比他人晚了一步,则需要先从远程拉取最新的,之后进行合并再上传

如果没有指定自己本地dev分支与远程origin/dev分支的链接 则会报错,需要设置,然后再拉取

错误提示提示  no tracking information
git branch --set-upstream-to=origin/dev dev

 工作流程

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

原文地址:https://www.cnblogs.com/Nora-F/p/9469547.html