[关闭]
@JunQiu 2018-11-01T13:15:14.000000Z 字数 1192 阅读 1925

git切换到远端分支、分支管理、合并(冲突解决)、清空暂存区/工作区/版本回退

git summary_2018/11


1、git 分支操作与合并中的冲突解决

1.1、分支建立与切换

  1. // 创建分支并切换
  2. $ git branch dev-#1
  3. $ git checkout dev-#1
  4. // 等价于
  5. $ git checkout -b dev-#1

1.2、分支查看

  1. // 本地分支(-r 远程分支,-a所有分支)
  2. git branch
  3. // 切换到远端某个分支
  4. git branch -r
  5. git checkout 远端分支 -f(强制覆盖当前分支未提交的修改)

1.3、分支合并

  1. // 当前有master分支和dev-1分支,处于master分支,将dev-1分支合并到master分支:
  2. $ git merge dev-1
  3. Auto-merging test.js
  4. CONFLICT (content): Merge conflict in test.js
  5. Automatic merge failed; fix conflicts and then commit the result.
  6. // 如果没有冲突将会合并,但由于在test.js文件存在冲突。因此,需要手动解决冲突:
  7. // 可以用git status查看冲突的文件
  8. $ git status
  9. On branch master
  10. You have unmerged paths.
  11. (fix conflicts and run "git commit")
  12. (use "git merge --abort" to abort the merge)
  13. Changes to be committed:
  14. new file: .idea/vcs.xml
  15. modified: .idea/workspace.xml
  16. Unmerged paths:
  17. (use "git add <file>..." to mark resolution)
  18. both modified: test.js
  19. 我们可以在文件中看到,进行手动合并:
  20. <<<<<<< HEAD
  21. console.log('git test 1')
  22. =======
  23. console.log('git test')
  24. >>>>>>> dev-1
  25. // 可以两者选择一个,也可以均保留/删除:
  26. console.log('git test 1')
  27. console.log('git test')
  28. // 标记冲突解决并提交:
  29. git add .
  30. git commit

2、清空工作区/暂存区/版本回退

2.1、版本回退

  1. // 回退到上一个版本,上上一个HEAD^^,往上100:HEAD~100
  2. git reset --hard HEAD^/commit id
  3. Tips:git reflog可以查看历史命令

2.2、清空暂存区

  1. // 清空暂存区,放回工作区,仅覆盖工作区在暂存区存在的对应文件
  2. git reset HEAD

2.3、清空工作区

  1. // 清空工作区的修改
  2. git checkout -- <file>..." to discard changes in working directory
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注