项目中使用 Git 高频场景

1. 拉取最新主干代码,进行功能迭代或 bug 修复

  1. 首先切换到主干:
git checkout master
  1. 然后拉取最新代码:
git pull
  1. 基于 master 创建本地分支 xxx:
git checkout -b feature/xxx
  1. 将本地分支 xxx push 到远程 Git 库:
git push --set-upstream origin feature/xxx

2. 如何重命名远程分支

例如远程分支为:feature/xxx。

  1. 首先切换到该远程分支对应的本地分支:
git checkout feature/xxx
  1. 拉取下最新代码:
git pull
  1. 进行重命名:
git blame -m feature/xxx feature/login
  1. 将 feature/login 推动远程 Git 库:
git push --set-upstream origin feature/login
  1. 删除老旧远程分支:
git push origin --delete feature/xxx

3. 功能开发一半,临时修复线上紧急 bug

这个时候,新功能开发代码可能还没完成,我们需要把当前的工作进度保存下,等修复 bug 后再转过头来继续开发。

  1. 保存当前的工作进度,并附上注释:
git stash save "add login func"
  1. 获取 stash list:
git stash list
  1. 修复完 bug 后,还原之前的工作进度:
git stash pop stash@{
    
    index}

4. 如何挑拣别人的 commit

对于同一功能的不同分支,可能其他开发对该功能进行 bugfix,这个时候我们也想用在自己的分支 fix 这个 bug,注意不要脑残贴代码呢,敲黑板!!!

  1. 获取其他开发者修复的 commitId:
git log 或 git reflog
  1. 挑拣别人的 commitId 到自己的分支:
git cherry-pick commitId

5. 如何回退版本

对于某一错误操作致使项目无法正常运行,我们需要对某一点进行还原,有点类似电脑操作系统的备份点或还原点;这个操作会使 git 指针往后退,所以在 push 的时候需要强制 push 才能成功!

  1. 获取还原点,还原点选择很重要,需要选择正确版本的最新:
commitId
  1. 回退版本:
git reset commitId
  1. 查看 reset 后的代码更改项:
git status
  1. 忽略更改项,直接强制 push:
git checkout .
git push -f

6. 如何撤销某一个 commit

撤销操作和回退操作唯一不同的是,撤销的操作指针是往前的,回退的操作指针是往后的;撤销相当于相互抵消,等于白干!

  1. 获取需要撤销的 commitId。
  2. 进行撤销:
git revert commitId

7. 如何合并分支

当功能分支测试完成,一切就绪后,需要同步下 master 分支,避免不必要的冲突;这个时候有两个选择:

git merge origin/master
git merge --no-ff origin/master

两者有什么区别呢?

-ff

默认情况是快进式(即 fast-forward),当合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward);这种情况如果删除分支,则会丢失 merge 分支信息。

--no-ff

关闭 fast-forward 模式,在提交的时候,会创建一个 merge 的 commit 信息,然后合并与 master 分支 merge 的不同行为,向后看,其实最终都会将代码合并到 master 分支,而区别仅仅只是分支上的简洁清晰的问题,然后,向前看,也就是我们使用 reset 的时候,就会发现,不同的行为就带来了不同的影响。

--squash

区别

把一些不必要 commit 进行压缩,比如说,你的 feature 在开发的时候写的 commit 很乱,那么我们合并的时候不希望把这些历史 commit 带过来,于是使用 --squash 进行合并,此时文件已经同合并后一样了,但不移动 HEAD,不提交。需要进行一次额外的 commit 来“总结”一下,然后完成最终的合并。
这里笔者强烈推荐用 --on-ff 模式,这样合并上来的分支 commit 一目了然,便于后期的版本更迭。

猜你喜欢

转载自blog.csdn.net/wohu1104/article/details/114702821