精华内容
下载资源
问答
  • 而不是commit然后直接push? 情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都...

    转载:https://www.cnblogs.com/leiblog/p/11138497.html

    【Git版本控制】为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

    情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了:

    1,那我本地这个也算是个分支?还是就是一个本地仓库?

    答:本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了, set-upstream…balbala

    2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?

    答:你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

    3,本地仓库和本地分支有什么区别?

    答:本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支

    4,commit是提交到本地仓库,然后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和B,A合并B和B合并A,有区别吗?

    答:两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit ,被改变的分支是 B ;如果现在没有发生任何改动执行 B->A ,则A和B两分支才会完全相同。

    展开全文
  • 而不是commit然后直接push? 情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都...

    项目Git管理 为什么要先commit,然后pull,最后再push?而不是commit然后直接push?
    情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了:

    1,那我本地这个也算是个分支?还是就是一个本地仓库?
    解答:本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了, set-upstream…balbala

    2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?
    解答:你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

    3,本地仓库和本地分支有什么区别?
    解答:本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支, 如果是 tag 的话可以分离出独立的仓库

    4,commit是提交到本地仓库,然后push,这个push是把所有代码推到远程仓库,还是只是把commit的地方推到远程仓库?
    解答:肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地的这几个 commit 和远程的 commit 有冲突的部分就merge,然后根据提交时间排序再新建一个merge 的 commit 记录再怼上去

    5,那为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?
    解答:这个先 commit 再 pull 再 push 的情况就是为了应对多人合并开发的情况,
    (1)commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
    (2)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,不然真的会覆盖代码的

    6,两个分支,A和B,A合并B和B合并A,有区别吗?
    解答:两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit 的信息,这个时候 B 是合并状态而 A 未合并状态,如果现在没有发生任何改动执行 B->A 就直接切换过去了,连 merge_commit 都不会生成了
    最后:test 分支合并到 master: 先切换到master 然后merge into current!

    展开全文
  • git基础:先pull,再commit,再push。 现在的方式:每次写之前先pull,写完push前也先pull 问题分析如下: 现在远程有一个仓库,分支就一个,是master。本地的仓库是从远程的master上clone下来的,再在自己本地改...

    备注:

    发表到CSDN做为转载文章。git基础:先pull,再commit,再push。


    现在的方式:每次写之前先pull,写完push前也先pull

    问题分析如下:

    现在远程有一个仓库,分支就一个,是master。本地的仓库是从远程的master上clone下来的,再在自己本地改好,再commit → pull → push。

     

    1,那我本地这个也算是个分支?还是就是一个本地仓库?

    本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了

     

    2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?

    你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

     

    3,本地仓库和本地分支有什么区别?

    本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支, 如果是 tag 的话可以分离出独立的仓库

     

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

    肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地的这几个 commit 和远程的 commit 有冲突的部分就merge,然后根据提交时间排序再新建一个merge 的 commit 记录再怼上去

     

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

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

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

    2、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,不然真的会覆盖代码的

     

    6,两个分支,A和B,A合并B和B合并A,有区别吗?

    两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit 的信息,这个时候 B 是合并状态而 A 未合并状态,如果现在没有发生任何改动执行 B->A 就直接切换过去了,连 merge_commit 都不会生成了

    展开全文
  • 大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了: 1,那我本地这个也算是个分支?还是就是一个本地仓库? 答:本地和远程的关系相当于两个分支,你感觉一样...

    情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了:

    1,那我本地这个也算是个分支?还是就是一个本地仓库?

    答:本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了, set-upstream..balbala

    2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?

    答:你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

    3,本地仓库和本地分支有什么区别?

    答:本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支

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

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

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

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

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

    2. 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,不然真的会覆盖代码的

    6,两个分支A和B,A合并B和B合并A,有区别吗?

    答:两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit ,被改变的分支是 B ;如果现在没有发生任何改动执行 B->A ,则A和B两分支才会完全相同。

    转载于:https://www.cnblogs.com/xzybk/p/11326808.html

    展开全文
  • 本地的仓库是从远程的master上clone下来的,再在自己本地改好,再commit → pull → push。 1,那我本地这个也算是个分支?还是就是一个本地仓库? 本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的...
  • 大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了:1,那我本地这个也算是个分支?还是就是一个本地仓库?答:本地和远程的关系相当于两个分支,你感觉一样是...
  • 大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了: 1,那我本地这个也算是个分支?还是就是一个本地仓库? 答:本地和远程的关系相当于两个分支,你感觉一样...
  • 最近在提交代码的时候碰到一个问题,代码commitpush到远程仓库后发现提交人的信息有误,远程仓库显示的提交人不是我。虽然这对于开发来说并无大碍,但身为强迫症的我怎么能忍?但代码已经push到远程仓库了,怎么...
  • 如图所示,右下角,选择Amend Last Commit选项,然后会自动显示上次提交的内容文案,左边列表也会显示上次提交的内容,想追加备注可以直接修改,想的话,直接点击commit按钮,相当于你的新修改追加在了最后一次...
  • 当我们错误的提交了一个push到线上仓库了之后,需要将其取消该怎么操作?...git reset --hard commit_id //后者直接回改变本地源码,仅仅指向变化了,代码也回到了那个版本时的代码,所以使用是一定
  • IDEA 撤销commit push 命令行操作

    万次阅读 2017-10-24 11:41:23
    idea 操作 gitHub还原本地线上版本 操作步骤  git reset --mixed:此为默认方式,带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit...如果还要提交,直接commit即可  git rese
  • IntelliJ idea 撤回已经commit并未push的文件: 废话多说,直接上图,五步操作直接完成 标题 666
  • 废话多说,直接上图: 工具栏VCS->Git->Reset HEAD… 点进去是这个样子的: 想撤回上次commit就在To Commit栏输入HEAD~1,撤回前两次就是2,依次类推,也可以点击Validate浏览需要撤回的地方。 ...
  • VCS ——> Git Reset HEAD… 取消提交 Reset Type: mixed:此为默认方式,带任何参数的git reset,即时这种方式,它回退到某个版本,...如果还要提交,直接commit即可 hard:彻底回退到某个版本,本地的...
  • 博主在使用idea的时候,因为提交了该提交的代码,在commit过后才发现,但是还没push,那么想撤回commit的代码应该如何做呢? 一、点击控制台的version control,进入log 在log里面可以看见刚刚提交了错误文件的...
  • 在实习期间,与小组伙伴多人协作时,产生的一些git操作问题::解决方案,先....commit是防止远程直接覆盖你本地,只要有修改都会让你commit,提示你pull原因是因为你远程当中有最新的东西和你本地一致,git知道,...
  • 还原Git上commit,但是没有push代码

    千次阅读 2017-08-31 19:55:06
    有时候会小心上传代码错误,这里给大家整理了一下解决方法。 直接在Ide上操作2步解决: 1. 找到:  2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次...如果小心commit了一个需要
  • 直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可...如果小心commit了一个需要commit的文件,可以对其进行撤销。 先使...
  • 就在刚刚结束的软构lab5实验中,天水(我)在试图提交35分支的时候直接git add *,忘记我把导出的 heapdump 文件也存在了目录下,导致commit了一次大文件,结果在push的时候无法上传。经过不懈的查找网上博客和求...
  • 先在log中找到想要恢复到的commitId(注意,不是本次提交的commitId)2.git reset commitId 将代码恢复到提交前,保留了本次提交的修改内容如果想保留本次修改,直接用git reset -hard commitId...
  • 傻傻的我git commit 之后没仔细看提示就直接push,然后显示没什么可更新的,之后才发现我的commit没成功,有了**Aborting commit due to empty commit message.**的提示 上网搜没找到合适的答案,然后试了下把 $...
  • git push 或者 合并分支时出现以下窗口提示 Please enter a commit message to explain why this merge is necessary. 意思:请输入提交消息来解释为什么这种合并是必要的 git 在pull或者合并分支的时候有时会遇到...
  • git 修改刚刚的commit

    万次阅读 2019-05-30 20:01:12
    commitpush到origin(远端) 现在最新的commit如图所示,添加了一行输出代码,只提交到了本地仓库,没有push...的确,我直接提交这次修改的代码不会有任何问题,但是我就是有强迫症,耶稣也拦不住我,我想再提交...
  • 由于在做lab5的时候小心把内存的dump文件复制到了工程里并且commit了,之后我虽然删除了本地的文件,但是push的时候仍然提示我文件过大。经过查找资料,我发现了如下解决办法。 首先我试过直接rm,但是之前已经作...
  • 修改Commit Message 1项目没有push 1.1.如果项目没有push。... ...右键,点击Edit Commit ...直接修改Message会提示Push Rejected 这时要点merge,不仅不会修改Message,还会多两个新的Commit 2.2 上远端删除当前分支。
  • git撤销commit操作

    千次阅读 2016-10-13 11:25:43
    原因是commit的时候没加说明,正确的是:commit -m “说明”,我直接commit -m,结果Push失败。后来就想着,将缓存到分支的文件删除,重新再将文件略做修改,重新push. 步骤:git reset –hard HEAD(回退最近一次...
  • git 回退到某个commit

    千次阅读 2015-10-27 11:12:03
    可以本地直接reset到某个commit 然后push时选择“force ovewrite ...”选项,可以成功把远程git库覆盖掉。 但是有个弊端,多人开发时,其他人以前的老代码需要需要删掉,重新从服务器clone一份新代码,不然的话...
  • 一般git提交代码分为三步 ...但是发现commit错了 push的时候想带它怎么办 (简单啊:删除掉重新clone啊/手动滑稽) 页面下方打开terminal 输入:git reset --soft HEAD~1 即可回退到上次commit...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 285
精华内容 114
热门标签
关键字:

不commit直接push