我正在使用github与另外两个人一起开展一个项目,并且对整个提交事情感到非常困惑,我读的任何内容都没有帮助我理解。我得到了您对本地存储库所做的提交记录更改...但是为什么我的小组成员'提交出现在在线存储库?您是否可以同时使用计算机上的本地存储库以及在线存储库?如果您可以提交到在线存储库,那么在执行此操作之间有什么区别,只需使用git push在线推送您的更改? 谢谢你。
答案 0 :(得分:1)
如果您的小组成员执行git推送,它将推送到"在线存储库"。 Git提交仅适用于本地。 Git push是将这些提交移动到"在线存储库"的原因。
答案 1 :(得分:1)
将有两个阶段的git提交。
本地存储库提交:这些是您将对本地存储库执行的提交,称为暂存提交。这些提交不适用于您的朋友,因为顾名思义这些提交是您的计算机的本地提交。
联机存储库提交:这些是您将从将它们转移到联机的原始存储库的提交。这些提交将在所有使用此分支的用户可用时提供。
希望如果您需要更多信息,请澄清并告诉我。
答案 2 :(得分:1)
假设您正在开始新的存储库。你必须先在当地开始,对吧?所以,
git init
- >在本地计算机上初始化存储库。 (假设你开始使用空文件夹)
现在你有一个空的存储库。现在是时候添加很多很棒的代码/内容了。获得一些代码后,您将commit
。
git commit
- > Git仍会保留您所有的更改本地;但请记住您在此提交中所做的所有更改。
让我们说你做了一些更改,并希望保存你的工作。因此,您将再次运行commit
。 Git会再次保存您的更改,但是在提交#2中,仍然本地到您的计算机。
现在您已准备好与其他人分享您的工作。由于Github repo的在线(通常),您必须push
(即上传)您对远程存储库的更改。
commit
和push
之间的区别在于,第一个在您的计算机上本地保留所有更改(您的团队中没有其他人可以访问您的更改或提交),{{1}将使您的代码可供所有人使用。希望明白!
答案 3 :(得分:1)
但是为什么我的小组成员'提交显示在在线存储库?
回答:我认为他们已经提交了他们本地版本的存储库,然后df.coef <- data.frame(
fraction.of.train,
t(sapply(res, function(x) coef(x))));
# fraction.of.train X.Intercept. lstat
#1 0.1 34.89899 -1.0582710
#2 0.2 34.11266 -0.9234659
#3 0.3 34.27738 -0.9703798
#4 0.4 35.71255 -1.0257534
#5 0.5 34.90033 -0.9898475
#6 0.6 33.40422 -0.9042411
#7 0.7 34.80059 -0.9905163
#8 0.8 34.56530 -0.9702517
#9 0.9 34.51626 -0.9610643
#10 1.0 34.66880 -0.9752710
将这些提交提交到远程存储库,以便其他人可以查看和删除这些更改。
回答:他们是一样的。我不知道有人直接向在线存储库提交提交(除非您正在编辑自述文件或进行一些简单的HTML修复)。它的一般做法是提交到本地存储库,然后在将这些更改添加到代码库时将这些更改推送到远程存储库。如果您可以提交在线存储库,那么在执行此操作之间有什么区别,只需使用git push在线推送您的更改即可?
答案 4 :(得分:0)
我猜你可能有SVN的经验。与svn commit
不同,git commit
仅仅是本地操作。它在本地生成数据,不会将数据发送到远程存储库。要将存储为提交的本地更改发布到远程存储库,您需要git push
。
git push
将仅本地数据发送到远程存储库,有时会告诉远程存储库创建或删除branches
和tags
等引用。理论上,只要本地存储库与远程存储库之间存在功能路径,远程存储库就可以是Universe中的任何存储库。此外,远程存储库甚至可以是本地存储库本身。你可以从存储库推送到自己,虽然它几乎没用。您可以尝试git push . HEAD:refs/heads/fmyself
。
成功推送提交后(是的,推送可能会失败,但Git提示将告诉您如何解决),其他人(更具体地说是其他存储库。您自己可能有其他存储库)可以从远程存储库获取您的提交通过git fetch
或git pull
。 git pull
可以等同于git fetch + git merge
或git fetch + git rebase
。关键是git fetch
。它将元数据和引用从远程存储库下载到本地存储库。如上所述,其他人可以直接推送到本地存储库或从本地存储库获取,反之亦然。然而,考虑到方便性和安全性,很少使用该模型。更有可能的是,使用中央存储库。在您的情况下,它是在Github中托管的存储库。它可以作为转运站。
某些托管服务可能支持“在线提交”,这似乎允许您直接在远程存储库中提交。就像您登录并在服务器上的存储库中执行操作一样。除了修改提交消息外,在大多数情况下,Oneline提交并不方便。