俄罗斯门户网站有哪些,黄冈网站推广平台,wordpress网站用户共享,南京广告公司招聘信息情况是这样的#xff0c;现在远程有一个仓库#xff0c;分支就一个#xff0c;是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来#xff0c;再在自己本地改好#xff0c;再commit然后pull然后push#xff0c;大家都是这么做的。那么现在问题…情况是这样的现在远程有一个仓库分支就一个是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来再在自己本地改好再commit然后pull然后push大家都是这么做的。那么现在问题来了
1那我本地这个也算是个分支还是就是一个本地仓库
答本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了, set-upstream..balbala
2如果我在远程新建了个分支然后我pull了下来那我本地到底有分支这个说法吗我本地的分支是不是就是那个远程新建的分支
答你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了
3本地仓库和本地分支有什么区别
答本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支
4commit是提交到本地仓库然后push这个push是把所有代码推到远程仓库还是只是把commit的地方推到远程仓库
答肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地分支的最新版本和远程的 commit 有冲突就需要解决冲突。
5那为什么要先commit然后pull然后再push我pull了岂不是把自己改的代码都给覆盖掉了嘛因为远程没有我改的代码我pull岂不是覆盖了我本地的改动好的地方了那我还怎么push
答这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况, commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较; pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add git commit git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉 出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的
6两个分支A和BA合并B和B合并A有区别吗
答两个互相合并的唯一区别就是 A-B 的时候 B 分支上会产生一个 merge_commit 被改变的分支是 B 如果现在没有发生任何改动执行 B-A 则A和B两分支才会完全相同。