Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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?_Git - Fatal编程技术网

如何将代码重新引入Git?

如何将代码重新引入Git?,git,Git,我在Git存储库中添加了一些代码。但是,另一个团队删除了我的新文件和更改,并提交了一个没有我的代码的版本。我试图回到我以前的提交并重新合并我的更改以使它们恢复,但这不起作用。我想,有一个更新的版本删除了代码,这意味着回购协议不想再接受该代码 如何将旧代码带回来,然后重新引入repo?Git中没有任何东西能够阻止代码被重新添加,仅仅因为它以前被添加和删除过。您只需要进行更改,git添加它们,以及git提交它们。git中没有任何东西会阻止代码被重新添加,仅仅因为它以前被添加和删除过。您只需要进行更改

我在Git存储库中添加了一些代码。但是,另一个团队删除了我的新文件和更改,并提交了一个没有我的代码的版本。我试图回到我以前的提交并重新合并我的更改以使它们恢复,但这不起作用。我想,有一个更新的版本删除了代码,这意味着回购协议不想再接受该代码


如何将旧代码带回来,然后重新引入repo?

Git中没有任何东西能够阻止代码被重新添加,仅仅因为它以前被添加和删除过。您只需要进行更改,
git添加它们,以及
git提交它们。

git中没有任何东西会阻止代码被重新添加,仅仅因为它以前被添加和删除过。您只需要进行更改,
git添加它们,以及
git提交它们。

git不会阻止您的文件被重新添加。更确切地说,这听起来像是试图合并一个提交,它是当前分支提示的祖先。这在Git中是不可操作的,因为提交已经合并

听起来您想对删除代码的更改进行部分还原

假设您知道删除更改的提交标识符:

git revert --no-commit $COMMIT
这将反向应用特定的提交,并将更改分阶段进行。暂时不要提交,因为这样会撤消所有更改。首先,您必须取消提交中引入的合法更改

选中
git status
,然后使用
git reset$file
重置您不想还原的每个文件。这将取消显示该文件中所做的任何更改。(它不会还原工作目录中的文件。)

如果您需要部分还原文件(删除该文件中的某些更改,但不删除其他更改),则使用
git reset--patch$file
,这将提示您在该文件中进行的每个更改。放弃您希望保持提交状态的每个更改


在任何时候,您都可以使用
git diff--cached
看到当前提交将更改什么。提交当差异反映删除文件的恢复以及错误提交中错误进行的任何其他更改时的结果。

Git不会阻止重新添加文件。更确切地说,这听起来像是试图合并一个提交,它是当前分支提示的祖先。这在Git中是不可操作的,因为提交已经合并

听起来您想对删除代码的更改进行部分还原

假设您知道删除更改的提交标识符:

git revert --no-commit $COMMIT
这将反向应用特定的提交,并将更改分阶段进行。暂时不要提交,因为这样会撤消所有更改。首先,您必须取消提交中引入的合法更改

选中
git status
,然后使用
git reset$file
重置您不想还原的每个文件。这将取消显示该文件中所做的任何更改。(它不会还原工作目录中的文件。)

如果您需要部分还原文件(删除该文件中的某些更改,但不删除其他更改),则使用
git reset--patch$file
,这将提示您在该文件中进行的每个更改。放弃您希望保持提交状态的每个更改


在任何时候,您都可以使用
git diff--cached
看到当前提交将更改什么。提交当差异反映删除文件的恢复以及错误提交中错误进行的任何其他更改时的结果。

您可以简单地选择引入代码的提交:

mkdir test
cd test
git init
echo "foo" > foo.txt
echo "bar" > bar.txt
git add foo.txt; git commit foo.txt -m "added FOO"
git add bar.txt; git commit bar.txt -m "added BAR"
git rm  foo.txt; git commit foo.txt -m "removed FOO"
# the next line will recreate the deleted 'foo.txt' 
#      by cherry-picking the commit that created it
git cherry-pick HEAD~2

您可以简单地选择引入代码的提交:

mkdir test
cd test
git init
echo "foo" > foo.txt
echo "bar" > bar.txt
git add foo.txt; git commit foo.txt -m "added FOO"
git add bar.txt; git commit bar.txt -m "added BAR"
git rm  foo.txt; git commit foo.txt -m "removed FOO"
# the next line will recreate the deleted 'foo.txt' 
#      by cherry-picking the commit that created it
git cherry-pick HEAD~2

怎么了?最好与另一队谈谈原因。您可能需要再次签出旧的提交并手动解决合并冲突,因为它们只是删除了文件。他们和我一样都是新手。我99%确定这是他们的错误,因为他们肯定不需要删除我介绍的每个文件。错误是什么?最好与另一队谈谈原因。您可能需要再次签出旧的提交并手动解决合并冲突,因为它们只是删除了文件。他们和我一样都是新手。我99%确定这是他们的错误,因为他们肯定不需要删除我介绍的每个文件。