本文是本人在实习期间总结的一份关于使用 Git 进行协同开发的小记。

背景:上游分支 release-branch,现在要在 release-branch 基础上进行开发

1、先克隆整个项目,此时本地应该只有 master 分支

2、克隆 release-branch 分支,git checkout -b release-branch origin/release-branch,此时本地 release-branch 和远程 release-branch 建立了映射关系,以后可以直接 pull 获得最新版本(tip:如果不想建立追踪关系,可以使用 git fetch origin release-branch:release-branch

3、拉好该分支后,此时处于 release-branch 分支,基于 release-branch 分支拉出来一个开发分支 dev-branch,可以使用 idea 里面的 Git 右键选择 release-branch,然后点击 new branch from …,建立本地的开发分支 dev-branch

4、在本地开发一段时间后,commit 之后不能直接 push 到远程,因为此时 release-branch 上可能也有更新,所以此时要先使用 rebase 更新本地开发分支,然后再 push,具体操作如下:

  • git checkout <主分支>
  • git pull
  • git checkout <开发分支>
  • git rebase <主分支>(将当前分支的基底设置为主分支,也就可以把主分支的更新拉过来到当前分支)
  • git push --force origin <开发分支>
  • 提 MR 合并开发分支到下个版本的主分支上

git push

  • 第一次使用 push,可以使用 idea 里面的 git,右键 push,可以设置远程分支,没有也会自动创建并设置关联关系。或者使用git 命令:git push origin feature-branch:feature-branch

  • 后续使用push,可以直接切换到该分支上,git push,但是一般都要进行 rebase 更新,所以使用 git push --force origin <本地分支名>

git pull

  • 第一次拉某个分支,可以是用 git checkout -b <主分支> orign/<主分支>

  • 以后要更新,可以直接 git pull,完整版 git pull origin <远程分支名>:<本地分支名>

回退

  • git reflog 查看版本号,在 Head{1/2…} 前面的短字符串

  • git reset --hard <版本号>

参考