我的同事和我在同一个存储库上工作,我们已经将它分成两个分支,每个分支在技术上用于不同的项目,但是它们有相似之处,所以我们有时会想要master从... 返回到*branch.
但是,我有branch.我的问题是,我的同事怎么能专门拉那个分支? 
一个git clone回购似乎并不在本地创建分支的他,虽然我可以在我结束推后住上unfuddle看到它们.
此外,当我最初创建分支时,我做了-b checkout.不确定这是否有很大的不同?
$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master
$ git fetch origin discover
$ git checkout discover
这些是我跑的命令.但它绝对不起作用.
我希望能够检查该分支,然后推送并提交来自各个协作者或工作站的分支更改.
我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我总是习惯git checkout -- .清理我的工作目录.我以为我读到了某个地方--需要避免git认为你传递的参数(或其他东西)
现在一位同事告诉我,我可以放弃--,实际上,快速测试也是如此.
这两个命令之间有什么区别吗?
PS:在这里问,因为git checkout -- .vs git checkout .有点难以谷歌...
我知道这不是一个严格的编程问题,但它与git有关.我不小心在git中创建了一个分支--track(我在合并远程分支时得到了错误的选项顺序)
常规命令不起作用:
git branch -D "--track"  
我试图用引号和反斜线逃脱,但是都不起作用.
有任何想法吗?
tl; dr:git checkout master没有切换到master分支,根本没有给出错误或任何输出,我也不知道为什么.任何其他分支工作正常.
我有一个git存储库,由分支development和master.我做了一个新的克隆存储库,检查分支development是默认的.
$ git clone <REPO-URL> --branch development
$ git branch -a
* development
origin/HEAD -> origin/development
origin/development
origin/master
$ git show-ref 
656c781c2affc26792f857baf8e232de07101535 refs/heads/development
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/HEAD
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/development
cfee1a1761642453edf5d001565f23b50243ff09 refs/remotes/origin/master
ref master指向正确,提交确实存在并且是我的master分支的最新提交.
到目前为止,一切看起来都很正常,但是当我尝试切换到掌握时,这种情况正在发生:
$ git checkout master
$ git branch 
* development
没有来自结账的消息,没有错误,没有任何消息,并且没有切换分支.
到目前为止我尝试过的事情:
master2从同一个commit => checkout 创建第二个分支工作正常.git checkout -b master --track origin/master=>有效,但我认为没有必要使用此命令,因为这是git checkout master应该自动执行的操作还有什么想法?我错过了什么?我的存储库坏了吗?我怎样才能解决这个问题?
我在我当地的git repo中设置了两个遥控器.一个是我正在贡献的开源项目的回购,另一个是我的回购分支.
看来我只能查看我从origin遥控器下拉的东西.从遥控器抓取分支的常规方法包括
$ git fetch <remote> <branch>
$ git checkout <branch>
但这在我目前的情况下似乎不起作用.
$ git fetch my-remote my-branch
remote: Counting objects: 2297, done.
remote: Compressing objects: 100% (1951/1951), done.
remote: Total 2297 (delta 1044), reused 0 (delta 0), pack-reused 50
Receiving objects: 100% (2297/2297), 2.10 MiB | 1.59 MiB/s, done.
Resolving deltas: 100% (1045/1045), done.
From https://github.com/me/my-repo
 * branch            my-branch -> FETCH_HEAD
 * [new branch]      my-branch -> origin/my-branch
$ git checkout my-branch
error: pathspec 'my-branch' did not match …TLDR:如果X作为远程分支存在,那么git checkout X应该创建它的本地分支.就我而言,对于一个分支,它没有.
远程存储库有一个master, release,和其他一些分支(比方说refactor-update)我这样做:
git clone WHATEVER/repo.git
git checkout release
但我没有得到正常的分支切换消息,也没有origin/release创建本地分支跟踪(man每页都有git checkout).我还在master.注意,如果我做的git checkout refactor-update一切都按预期工作.
这在其他计算机上是可重现的(尽管是相同的平台,可能是相同版本的git).我(出于绝望,不是因为我认为它会起作用),删除release分支并用备份替换它并且master分别没有改变行为(git push origin :release && git push origin master:release)
我被困在可能导致问题的地方.我怀疑是因为某些原因git checkout似乎没有认出这个词release,这会让它像执行一样git checkout.为了尝试跟进这个,在另一个回购中我创建了一个发布分支,看看它是一个保留字还是什么,但它肯定只是在这个存储库中.似乎没有任何与众不同的东西.git/config.
Git版本:1.8
我是git的新手,并试图围绕分支的工作方式.根据文档git checkout
更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.
所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?