Git基础系列:merger,checout等

1 merge

远程开发分支:
dev
本地开发分支:
local-dev-1
local-dev-2
场景:
local-dev-1提交更新到远程dev分支后,
local-dev-2此时更新了代码,需要合并到远程dev分支

1.0 正常merge

  • 本地分支与远程分支关联:本地dev与远程dev分支关联:
    其中,-b dev中的dev为本地的dev分支
git checkout -b dev origin/dev

local-dev-2从远程dev拉取代码

# 切换到本地dev分支,本地dev分支追踪远程dev分支
git checkout dev
# 拉取远程dev代码
git pull origin dev

Git基础系列:merger,checout等_第1张图片

图1.0 从远程dev分支拉取代码
# 本地分支local-dev-2代码合并到本地分支dev
git merge local-dev-2
# 本地分支dev推送到远程dev分支
git push -u origin dev

Git基础系列:merger,checout等_第2张图片

图1.2 本地分支dev合并local-dev分支

1.2 异常方式

# 切换到本地dev分支,本地dev分支跟踪远程dev分支
git checkout dev
# 本地local-dev-2分支合并到远程dev分支
git merge local-dev-2

Git基础系列:merger,checout等_第3张图片

图1.3 fast-forward

此时的情况为fast-forward,即远程分支dev代码比本地dev分支代码新(远程的dev分支代码比本地dev分支代码多提交了n次)

# 推送到远程dev分支
git push -u origin dev

Git基础系列:merger,checout等_第4张图片

图1.4 更新拒绝

无法推送,需要先整合远程dev代码,合并到本地dev分支。

2 rm

  • 切换到本地分支
git checkout local-dev
  • 删除
git rm -r /folder
  • 提交
git commit -m "Delete folder"
  • 远程同步
git push -u origin local-dev:remote-dev

3 checkout

  • checkout branch_name
    切换分支
  • checkout file_name
    将工作区的文件恢复至缓存区
  • checkout -b branch_name
    以当前分支的状态新建分支并切换到新分支
  • checkout -b local-dev origin/dev
    切换到本地local-dev(若本地不存在local-dev则新建),并将local-dev与远程dev关联,用于远程dev分支的commit及merge.

4 pull&fetch

  • fetch
    将远程分支的最新内容下载到本地,仅仅复制,不合并.
  • pull
    将远程分支最新内容下载到本地,并与响应的分支合并,
    pull=fetch + merge

5 branch

6 小结

合并分支,先切换到目标合并分支,使用merge,合并待合并的分支。

git checkout -b dev origin/remote-dev
git merger local-dev 

【参考文献】
[1]https://blog.csdn.net/zl1zl2zl3/article/details/94019526
[2]https://www.bbsmax.com/A/mo5kxGPEdw/
[3]https://www.cnblogs.com/ydxblog/p/7988317.html
[4]https://blog.csdn.net/qq_42780289/article/details/97762596
[5]https://blog.csdn.net/weixin_42501009/article/details/99679067
[6]https://www.cnblogs.com/runnerjack/p/9342362.html
[7]https://www.cnblogs.com/gaoBlog/p/10955352.html
[8]https://zhuanlan.zhihu.com/p/84855994

你可能感兴趣的:(#,Git)