Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 吉特认为我';当我没有';T_Git_Github_Version Control - Fatal编程技术网

Git 吉特认为我';当我没有';T

Git 吉特认为我';当我没有';T,git,github,version-control,Git,Github,Version Control,我需要帮助解决一个非常令人恼火的问题。我是的开发团队成员,这意味着我经常审查参与者自己分支机构的功能更新。为此,我下拉了他们回购协议的本地副本,并使用以下代码签出特定的分支机构: git remote add this_fork this_fork_url git checkout -b this_fork/this_branch git branch --set-upstream-to=remotes/this_fork/this_branch this_fork/this_branch gi

我需要帮助解决一个非常令人恼火的问题。我是的开发团队成员,这意味着我经常审查参与者自己分支机构的功能更新。为此,我下拉了他们回购协议的本地副本,并使用以下代码签出特定的分支机构:

git remote add this_fork this_fork_url
git checkout -b this_fork/this_branch
git branch --set-upstream-to=remotes/this_fork/this_branch this_fork/this_branch
git pull
我有几个供款人回购协议的本地副本,以及来源,其中我经常切换。使用contributor repos,我从不更改代码,我只需检查代码并编译和测试应用程序

然而,我注意到,有时候,当我签出其中一个贡献者分支时,git会告诉我
您的分支是remotes/this_fork/this_branch by#提交的负责人。(使用“git push”发布本地提交)
,或
您的分支和“remotes/this#u fork/this#u branch”已经分开,并且分别有##和##不同的提交。(使用“git pull”将远程分支合并到您的分支中)
。因为我知道我没有做任何更改,所以我尝试通过运行一个
git pull
来继续,但在前一种情况下,这会导致git强制我执行
git commit
,并导致git在后一种情况下执行合并。运行
git status
会显示相同类型的消息,但不会显示修改过的文件

一旦我的分支回购协议的一个本地副本出现这种情况,我发现解决它的唯一方法就是完全删除回购协议的本地副本——但这并不总是有帮助。我在一个分支上观察到,在我完全删除它之后,它仍然处于相同的状态,然后重新添加远程(事实上,我用所有本地回购副本删除了整个director和.git dir)。运行
git reset--hard
没有帮助

这在Ubuntu和Windows上都会发生(应用程序是跨平台的)。请注意,并非每次远程、每次分支或每次我签出分支时都会发生这种情况。我将不会有任何问题与一个分支数周,然后突然有一天,当我检查出来,这发生了

请注意,这与作者实际进行并推动更改的情况不同。就我而言,我没有做任何更改


所以我想我的问题有两个:“为什么git会认为我做了更改,而我没有?”和“我该如何解决这个问题?”

尝试
git checkout-B this\u fork/this\u branch remotes/this\u fork/this\u branch

如报告中所述:

如果给定了
-B
,则在不存在时创建;否则,它将被重置。这是与

$git分支-f[]
$git结帐
这样,您就可以确保您的本地分支
this\u fork/this\u branch
始终重置为您已获取的分支
remotes/this\u fork/this\u branch


在这种情况下,前面或后面都不应该有提交。

$git fetch Caritor\u Amithowej@Rio-71 MINGW64~/KTAB(Caritor\u Arun/xmlparser)$git checkout-B Caritor\u Amit/testing切换到并重置分支“Caritor\u Amit/testing”您的分支和“remotes/Caritor\u Amit/testing”已经分开,分别有36和42个不同的提交,分别地(使用“git pull”将远程分支合并到您的分支中)
@Dr.Drew what
git checkout-B Caritor\u Amit/testing remotes/Caritor\u Amit/testing
将返回?似乎已经完成了。但是对于一个分支,语法
git checkout-B this_fork/this_branch
确实有效,而另一个分支则需要第二个分支。为什么会出现这种情况?@Dr.Drew,因为(手册页)“如果未找到
,但在一个具有匹配名称的遥控器(称之为
)中确实存在跟踪分支,则将其视为等同于
$git checkout-b--track/
”@Dr.Drew“知道什么会首先导致问题吗?git错误地认为我做了更改?”当git重用现有的本地分支(
测试
):这就是为什么我建议
-B
:它强制分支(即使是现有分支)重置为其远程起始点分支。
$ git branch -f <branch> [<start point>]
$ git checkout <branch>