我对GIT的某些内容感到困惑。
我们有一个包含多个分支的代码库。我可以获取其中一个分支的本地副本(git checkout -b ...),然后进行一些更改,然后将更改推回。然而,如果我未标记该分支的末尾,其他用户如何获得该分支的head?当他们使用git checkout获取该分支时,他们会得到该分支在某个点上的代码,而不是该分支的head。
我错过了什么吗?
编辑:我晚入这个项目,并参与了从CVS到GIT的转换。我假设FOO_3_4_0001...标记都标记了从FOO_3_4_0001_INITIAL开始的分支上的点。我如何检查?
编辑2:感谢所有贡献答案的人。结果发现标记FOO_3_4_0001不在3.4分支上,这就是我一直缺少的东西。我已经安排了私刑队伍。
@ghoseb,没有用。我试过这个:
16:19:29 (1) foo $ git checkout --track -b FOO_3_4_0001_INITIAL origin/FOO_3_4_0001_INITIAL
Branch FOO_3_4_0001_INITIAL set up to track remote branch refs/remotes/origin/FOO_3_4_0001_INITIAL.
Switched to a new branch "FOO_3_4_0001_INITIAL"
16:19:36 (1) foo $ git branch
* FOO_3_4_0001_INITIAL
master
16:19:39 (1) foo $ git pull
remote: Counting objects: 68, done.
remote: Compressing objects: 100remote: % (59/59), done.
remote: Total 61 (delta 18), reused 0 (delta 0)
Unpacking objects: 100% (61/61), done.
From ssh://***
f0c5a5f..99f6c1e master -> origin/master
Already up-to-date.
16:19:42 (1) foo $
此时,我检查了一下我在这个分支上所做的更改,但并没有看到。如果我检出标记为FOO_3_4_0001_RC5a的代码,我的更改就在那里。
好的,对于@Dustin和@mipadi,我有更多的信息。
当我运行git branch -r
时,我看到:
16:12:02 (1) foo $ git branch -r
origin/FOO_3_3_0001_BUILT_VF_BRANCH
origin/FOO_3_4_0001_INITIAL
origin/FOO_3_5_0000_RC5
origin/FOO_3_5_0001_BRANCH
origin/HEAD
origin/master
origin/origin
16:12:05 (1) foo $
如果我查看标签列表,我会看到以下内容,其中包括:
16:12:05 (1) foo $ git tag -l
FOO_3_4_0000_RC1
FOO_3_4_0000_RC2
FOO_3_4_0000_RC2b
FOO_3_4_0000_RC3
FOO_3_4_0000_RC4
FOO_3_4_0000_RC4b
FOO_3_4_0000_RC5
FOO_3_4_0000_RELEASE
FOO_3_4_0000_TC1
FOO_3_4_0000_TC2
FOO_3_4_0001_RC2
FOO_3_4_0001_RC3
FOO_3_4_0001_RC4
FOO_3_4_0001_RC5
FOO_3_4_0001_RC5a
FOO_3_4_0001_TC1
16:14:33 (1) foo $
我的问题是如何知道FOO_3_4_0001_INITIAL分支的最新代码。
现在我知道它是FOO_3_4_0001_RC5a,但如果我不知道(对于我们的一些开发人员来说有时会出现这种情况),我该如何检出origin_FOO_3_4_0001_INITIAL分支并确保我拥有该分支上的最新代码?