Git学习笔记05--tortoisegit的add、commit、pull、push操作顺序

1.commit、pull、push操作顺序

操作步骤需要严格执行如下顺序:commit->pull->push

commit:将代码提交到本地仓库。

pull:将远程仓库代码同步到本地仓库。如遇冲突,解决冲突,重复commit->pull,直到没有冲突。

push:将本地仓库代码提交到远程仓库。

2.常见问题解析

(1) commit是提交到本地仓库,然后push,这个push是把所有代码推到远程仓库,还是只是把commit的地方推到远程仓库?

答:肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地分支的最新版本和远程的 commit 有冲突,就需要解决冲突。

(2)那为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?

答:这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况,

commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;

pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉

(3)出现代码覆盖或者丢失的情况

比如A、B两人的代码pull 时候的版本都是1, A在本地提交了2,3;并且推送到远程了。B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

 

3. git add 与git commit区别

git add 把它添加到仓库/暂存区。

git commit -m 把它提交到仓库, -m 是为了说明,可以填写任意内容,这个是为了记录你对这个文件做了什么操作,方便以后的管理。而 commit -m 是一个很重要的操作,因为它每次提交,都是提交于当前分支(从暂存区提交到当前分支),画个图理解一下:

 

 

 

posted @   雨后观山色  阅读(2734)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-12-24 JDBC常用套路
点击右上角即可分享
微信分享提示