对于git来说,我有点困惑,git clone
为您提供了从主存储库到本地系统的最新代码,但是我有一个分支说x
,如果不是这样的话像本地系统一样进行更新,当我稍后从本地推送到分支机构时,将导致冲突。如果是,那我该如何正确克隆?
我已经尝试过git clone <master>
,但不确定分支x
是否也在更新。
答案 0 :(得分:1)
首先,欢迎使用Git :-)分支和存储库之间似乎有些混乱。
git clone
将允许您在计算机上创建现有存储库的新副本。
语法是:git clone <path/or/url/of/the/repository>
不是git clone <branch-name>
,因为您似乎很困惑。
所以,是的,当您进行克隆时,您将从本地存储库中的主分支以及远程存储库中获取最新代码。
这时,您的项目本地副本知道在其远程克隆对象(名为origin
)上还有另一个分支x
。此时,如果您创建修改并在本地master
上提交,然后再推送它,它将更新远程master
分支,但是x
将保持不变。
如果您要对x
进行更改,则首先需要执行checkout
(git checkout x
),这将使本地文件的状态与更改相同与x
中的提交一起发生。然后,您可以更改文件,提交它们并推送,这将更新远程x
。
如果要将远程分支的最新更改获取到本地克隆,则有两种情况:
要么该分支在本地不存在,然后只需要git checkout thebranch
即可在本地创建它(处于远程状态)。
或者分支在本地存在并且已过时。在这种情况下,您首先需要“在上面”(git checkout thebranch
),然后提取最新版本:git pull
。
如果远程发生更改,Git将不会自动知道。您需要手动更新您的遥控器,以使用git remote update
检查更改,从而更新您对远程存储库状态的了解。