不知道这是不是问这个问题的地方,我无法理解一些东西,谷歌也没有帮助。
我一直在引用git教程(显然意味着我是新手)。
我学习了命令git remote -v来检查远程状态。好吧,所有的git教程都有类似于这的快照,显示了结果:
origin https://github.com/something/something-else.git (fetch)
origin https://github.com/something/something-else.git (push)但是,当我尝试命令时,对于origin和github,我得到了类似的结果。就像这样:
github https://github.com/srujan7/something-something-url.git (fetch)
github https://github.com/srujan7/something-something-url.git (push)
origin https://github.com/srujan7/something-something-url.git (fetch)
origin https://github.com/srujan7/something-something-url.git (push)问题:
我不知道这里的github和origin是什么意思。为什么我得到了两次呢?(不像教程),我也不确定是否做错了什么,或者它完全正确。向我指点其他一些教程,解释这一点也可以。
请随意建议编辑。
发布于 2016-06-10 07:24:58
Git支持多个远程设备,因此这是一个足够正常的状态。编辑:作为舒伯思回答,为多个远程用户设置相同的URL并不是很正常。这是无害的,但你也可以删除其中之一。
什么是遥控器?
远程只是一个名称,比如origin、upstream或github,甚至是fred或srujan。
Git将每个这样的名称存储在一个配置文件中。在这个名称下,Git可以存储其他信息,例如一个或多个URL。(要使远程很有用,它需要至少有一个URL,作为其url设置存储。)对于抓取,Git通常也需要每个遥控器至少需要一个fetch设置。
当git remote -v列出两个或多个遥控器时
最常见的情况是,每个Git存储库都只有一个远程存储库,通常命名为origin。这是因为当git clone通过复制一些现有的存储库创建一个新的存储库时,它会记录(在新的存储库中)现有存储库的URL。为了记录这一点,它创建了一个远程,默认情况下,它使用该遥控器的名称origin。
git remote add子命令添加额外的远程处理程序。为远程和URL指定一个名称,Git记录新的远程名称,并将其主URL设置为您刚才提供的URL。
在此之后,git remote或git remote show将列出您设置的两个(或更多)遥控器。
我怎么用遥控器?
当您运行git fetch或git push时,下一个单词通常是要从或推送到的遥控器的名称。例如,git fetch origin从名为origin的远程设备中获取。
如果您有两个遥控器,一个名为fred,另一个名为srujan,则可以使用git fetch fred或git fetch srujan。类似地,您可以使用git push fred或git push srujan。它们将使用存储在该遥控器下的URL与指定的遥控器联系。
当从远程获取时,您的Git将复制它们的Git分支,但是将它们重命名,使它们对于特定的遥控器是独一无二的。例如,如果我从远程srujan获取,而srujan的Git (在指定的URL处)有分支master和develop,我将得到名为srujan/master和srujan/develop的远程跟踪分支。如果然后从远程fred中获取信息,我将得到远程跟踪分支,如fred/master和fred/develop。
那git pull呢
git pull命令是git fetch的方便缩写,其次是git merge。与git fetch一样,git pull使用第三个单词,即远程的名称。git pull对此所做的主要事情就是把它交给git fetch。
git pull的奇怪之处在于它也采用了分支名称。它以一种奇怪的方式使用这些:git pull srujan master的意思是“先运行git fetch srujan,然后运行git merge surjan/master”。
通常最好自己运行git fetch,至少在一开始是这样,因为获取步骤可能失败(例如,如果网络连接中断)或合并步骤失败(如果合并不能自动完成)。在您非常熟悉Git之前,我相信您最好准确地知道哪一步出错了,因为您需要采取不同的操作来修复它,这取决于哪一步失败了。
您还可能希望重基而不是合并。这比合并要复杂得多(尽管通常也是一种更好的方法)。您可以让git pull进行重基而不是合并,实际上您可以自动实现这一点,但是细节有点复杂,首先手动运行git fetch,然后再手动运行git rebase,这一点都不复杂。
(简而言之,在您非常熟悉抓取、合并和重基之前,不要使用git pull,并且已经准备好允许Git一次完成所有这些操作。)
发布于 2016-06-10 07:16:40
在Git中,"remote“基本上只是服务器URL的别名,所以您不必一直键入完整的URL。如果没有显式指定远程名称,默认名称是origin。在您的示例中,您有两个遥控器,origin和github,它们指向同一个URL (无论出于什么原因;您可能遵循一些教程步骤来创建github远程演示)。所以两个中有一个是多余的。由于github是非标准名称,我只需键入
git remote rm githubhttps://stackoverflow.com/questions/37741924
复制相似问题