我已经对存储库进行了一些更改,并且它们被其他人还原(它们在Windows上编译但在linux上不编译).我认为这些变化仍然在历史中,但我怎样才能恢复这些变化,修复它们,然后重新提交?
我用的是svnX.
导入项目时,我检查"不忽略"选项.(用于导入libOAuth.a,...)
但是一个文件引起了一个小问题.
UserInterfaceState.xcuserstate
这是什么文件?
我可以忽略这个文件吗?那很重要么?我应该提交这个文件吗?
有人拿了Moodle的一个版本(我不知道),在一个目录中应用了很多变化,然后发布它(树在这里).
如何确定最有可能编辑原始项目的哪个提交以形成此树?
这将允许我使用此补丁在适当的提交中形成分支.当然,它来自1.8或1.9分支,可能来自发布标记,但特定提交之间的差异对我没有多大帮助.
事后更新:knittl的回答让我尽可能接近.我首先添加了我的补丁仓库作为远程"外来"(没有共同提交,没关系),然后在带有几个格式选项的循环中做差异.第一个使用--shortstat格式:
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff --shortstat "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment >> ~/rdiffs.txt;
echo "$REV" >> ~/rdiffs.txt;
done;
Run Code Online (Sandbox Code Playgroud)
第二个只计算了没有上下文的统一差异中的行变化:
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff -U0 "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment | wc -l >> ~/rdiffs2.txt;
echo "$REV" >> ~/rdiffs2.txt;
done;
Run Code Online (Sandbox Code Playgroud)
有成千上万的提交要挖掘,但这个似乎是最接近的匹配.
我使用GitHub作为我的远程存储库.
我已经将5次提交推送到服务器,并希望在这些提交之前恢复到状态.
如果提交哈希是3425661dba2aadccdbab,如何将整个本地/远程恢复为该提交?我试过了
$ reset --hard 3425661dba2aadccdbab
Run Code Online (Sandbox Code Playgroud)
但那只是把我的工作头重新安置到那个分支,并要求我再做git pull一次.我试过结帐,但这导致我降落在"独立的头"分支.
当我开始我的git repo时,我提交了一些文件作为初始提交.现在,很多提交后来,我注意到我在这些文件中包含了一条信息,其中包含我不想发布的信息(与其他代码不同).所以我想删除/更改这一行并保留其余的代码.
在我周围搜索我找到了这个解决方案:插入一个空提交作为初始提交(这里描述:在Git中根提交之前插入一个提交?),对它做一个rebase,然后通过修改编辑旧的第一次提交.不幸的是,在rebase期间出现了许多残酷的合并冲突(如下所述:git:解决由rebase引起的冲突).
有没有不同的方法来解决我的问题,或者必须手动变基和编辑所有冲突?
提前致谢 :)
我犯了一个错误,并开始提交"到最后一个标签",它将我的提交放在"无分支"中.它们本应应用于现有分支机构的负责人.我还没有推动我的改变.我发现了一些其他问题,当提交在错误的分支中时,但现在我没有分支,所以我不知道如何处理这个问题.
最好,我想完全抹去我的错误,并将我的更改"移动"到右分支的末尾.如果我必须在历史中留下我的错误,我需要至少合并它们.
我有一个未跟踪的文件没有出现在git diff中,当我将它添加到'changes to be committed'区域时,它仍然没有显示在git diff中.我展示了一个git status -v,当我做对头上的差异.
我仍然是git的新手,所以有人可以告诉我,如果文件将被提交,即使它没有出现在常规差异中,因为它已被添加到临时区域?
当我提交更改时,我当前不在任何分支上.我没有真正注意到这个消息,并检查了另一个分支.
如何检索我的更改?我无法合并或结帐,因为没有要合并的分支.
我正在使用GitHub for Mac,并在我的分支中进行了大量更改.我已经提交了一些更改,并将其他更改为未提交,因为我期待更多更改.但是,当我尝试进行同步以便将这些更改推送到Git存储库时,它会抱怨 - "未提交的更改 - 请在同步之前提交所有更改."
任何的想法?它是否期望在您同步时始终提交所有更改?
我已经阅读了各种Git教程,包括官方教程,他们似乎都告诉我以现在时态编写Git提交注释是很好的约定和做法.
这是为什么?它背后的原因是什么?