Git实际开发场景
日常工作的Git流程
工作流程1
1.git clone //到本地
2.git checkout -b xxx //切换至新分支xxx
(相当于复制了remote的仓库到本地的xxx分支上
3.修改或者添加本地代码(部署在硬盘的源文件上)
4.git diff //查看自己对代码做出的改变
5.git add //上传更新后的代码至暂存区
6.git commit -m 注释 //可以将暂存区里更新后的代码更新到本地git
7.git push origin xxx //将本地的xxxgit分支上传至github上的git
-——————————————————————————————–
(如果在写自己的代码过程中发现远端GitHub上代码出现改变)
1.git checkout main //切换回main分支
2.git pull origin main //将远端修改过的代码再更新到本地
(即将远程origin主机的master分支拉取过来和本地的当前分支进行合并)
3.git checkout xxx //回到xxx分支
4.git rebase main //我在xxx分支上,先把main移过来,然后根据我的commit来修改成新的内容
(中途可能会出现,rebase conflict —–》手动选择保留哪段代码)
5.git push -f origin xxx //把rebase后并且更新过的代码再push到远端github上
(-f —》强行)
6.原项目主人采用pull request 中的 squash and merge 合并所有不同的commit
-———————————————————————————————
远端完成更新后
1.git branch -d xxx 删除本地的git分支
2.git pull origin main 再把远端的最新代码拉至本地
工作流程2
1 |
|
1 |
|
删除其他分支
这个是经常会用到的,因为本地开发多次之后,使用 git branch
之后会发现有很多分支还在,为了保证「干净卫生」,所以就了解一下,可以执行如下命令。
- 增强命令(master)
可以删除除开 master 以外的分支,但类似
mr/master/xxx
这样的带有 master 的删除不了。
1 |
|
- 增强命令(release)
1 |
|
rebase 命令很强大,git rebase -i HEAD~[num]
和 git pull --rebase
等。
推荐阅读
- git merge适合公共分支,将其他分支合并到公共分支,merge操作两个分支最新的提交点会形成新的一个提交点,使后合并进来的commit记录仍然保持在后边。(merge以后会多出无意义的一条提交记录“Merge … to …”)
- git rebase适合个人分支(只自己一个人提交)。日常开发过程中,个人分支代码需要和公共分支代码保持一致最新,定期合并公共分支代码到个人分支。执行rebase操作后,会从指定分支上合并别人新的commit在我们的commit之前。(缺点是rebase以后就不知道当前分支最早是从哪个分支拉出来的了,因为基底变了)
回滚操作
代码 git commit 到本地分支,但没有 git push 到远程
git log # 得到你需要回退一次提交的commit id
git reset –hard
git reset –hard HEAD^ # 回到最新的一次提交
git reset HEAD^ # 此时代码保留,回到 git add 之前