关于GitHub多人协作中提交(commit)操作的困惑咨询
GitHub Commit协作入门答疑
嘿,刚和小伙伴用GitHub协作就卡在commit上太正常了!我来给你把这些问题拆解得明明白白:
为什么组员的commit会出现在在线仓库?
其实commit本身是只存在于本地仓库的操作——你在本地改完代码,用git commit把变更存成本地的快照,这时候只有你自己的电脑能看到这个记录。
那组员的commit怎么跑到在线仓库的?因为他们在本地commit之后,又执行了git push命令:这个命令会把本地仓库里所有还没同步到远程的commit,上传到GitHub的在线仓库里。反过来,你如果想看到组员的最新commit,就得用git pull把在线仓库里的新commit拉到自己的本地仓库。
简单说:commit是“存本地”,push/pull是“本地和远程仓库之间同步commit”。
能不能同时向本地仓库和在线仓库提交commit?
答案是:不能直接同时做,因为commit的本质就是本地仓库的操作——不存在“提交到在线仓库的commit”这种说法。
正确的流程是:先在本地执行git commit把变更保存成本地commit,再通过git push把这个本地commit同步到在线仓库。这样在线仓库里就会出现和你本地一模一样的commit记录了。
本地commit和同步到远程的“提交”有什么区别?
这里要先明确:你说的“两种提交”其实是本地commit操作和把commit推送到远程仓库的操作,两者完全不是一回事:
- 本地commit:
- 只影响你自己的本地仓库,别人看不到
- 是把你当前的代码变更打包成一个带有说明的快照,存在本地的Git历史里
- 命令是
git commit -m "你的提交说明"
- 推送到远程仓库:
- 是把你本地已经做好的commit,复制一份到在线仓库,让所有协作的组员都能看到
- 不会生成新的commit,只是同步本地已有的commit
- 命令是
git push origin 你的分支名
举个协作的小例子你就懂了:
- 你本地改完代码,
git commit -m "修复了登录按钮的bug"→ 这个commit只在你电脑里 - 你执行
git push origin main→ 这个commit就同步到GitHub的在线仓库了 - 你的组员执行
git pull origin main→ 这个commit就跑到他们的本地仓库里了
反过来,组员的操作也是一样的,所以你能在在线仓库看到他们的commit~
内容的提问来源于stack exchange,提问作者user8768055
相关产品推荐
相关产品推荐

