有没有办法恢复或撤消git pull,以便我的源/ repos将进入git pull之前的旧状态?我想这样做是因为它合并了一些我不想这样做的文件,但只合并了其他剩余的文件.所以,我想要恢复这些文件,这可能吗?谢谢 :)
编辑我想撤消git merge以澄清.看到一些答案后,我就这样做了
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
Run Code Online (Sandbox Code Playgroud)
现在,我该怎么办?做的git reset --hard 还行吗?我不想再把它搞砸了,所以要求详细的步骤?
当使用主题分支"B"合并到"A"时git merge,我会遇到一些冲突.我知道使用"B"中的版本可以解决所有冲突.
我知道git merge -s ours.但我想要的是类似的东西git merge -s theirs.
它为什么不存在?在与现有git命令冲突合并后,如何获得相同的结果?(git checkout来自B的每个未合并文件)
更新:从分支A(合并提交点到树的B版本)丢弃任何东西的"解决方案"不是我想要的.
所以我在.gitignore文件中添加了一个文件夹.
一旦我做了git status它告诉我
# On branch latest
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试更改分支时,我得到以下内容:
My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
public/system/images/9/thumb/red-stripe.jpg
public/system/images/9/original/red-stripe.jpg
public/system/images/8/thumb/red-stripe-red.jpg
public/system/images/8/original/red-stripe-red.jpg
public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
public/system/images/7/thumb/red-stripe-dark.jpg
public/system/images/7/original/red-stripe-dark.jpg
public/system/images/7/original/DSC07833.JPG
public/system/images/6/thumb/red-stripe-bw.jpg
public/system/images/6/original/website-logo.png
public/system/images/6/original/red-stripe-bw.jpg
public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
public/system/images/5/original/logocompv-colored-squares-100px.png
public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
public/system/images/4/thumb/DSC_0001.JPG
public/system/images/4/original/logo.png
public/system/images/4/original/DSC_0001.JPG
public/system/images/4/original/2-up.jpg
public/system/images/3/thumb/logo2.gif
public/system/images/3/original/logo2.gif
public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
public/system/images/3/original/11002000962.jpg
public/system/images/2/thumb/Profile Pic.jpg
public/system/images/2/original/Profile Pic.jpg
public/system/images/2/original/02 Login Screen.jpg
public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
这就是我的.gitignore文件的样子:
.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/* …Run Code Online (Sandbox Code Playgroud) 我在分公司mybranch1.mybranch2分叉,mybranch1并进行了更改mybranch2.
然后,在开启时mybranch1,我已经完成git merge --no-commit mybranch2
它显示合并时存在冲突.
现在我想丢弃所有东西(merge命令),这样mybranch1就恢复了之前的状态.我不知道我该怎么做.
我有两个分支,即master与development在GitHub的库.我正在开发分支中进行所有开发,如图所示.
git branch development
git add *
git commit -m "My initial commit message"
git push -u origin development
Run Code Online (Sandbox Code Playgroud)
现在我想将development分支上的所有更改合并到master.我目前的做法是:
git checkout master
git merge development
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
如果我遵循的程序是正确的,请告诉我.
我正在合并一个可能有很多冲突的远程分支.我怎么知道它是否会有冲突?
我没有看到像什么--dry-run的git-merge.
我只需要一个冲突文件的简单列表.
有什么比这简单:
git ls-files -u | cut -f 2 | sort -u
Run Code Online (Sandbox Code Playgroud)
要么
git ls-files -u | awk '{print $4}' | sort | uniq
Run Code Online (Sandbox Code Playgroud)
?
我想我可以为此设置一个方便的别名,但是想知道专业人士是如何做到的.我用它来编写shell循环,例如自动解决冲突等.也许通过插入mergetool.cmd替换该循环?
来自mercurial,我使用分支来组织功能.当然,我也想在我的历史中看到这种工作流程.
我使用git开始了我的新项目并完成了我的第一个功能.合并该功能时,我意识到git使用快进,即如果可能,它会将我的更改直接应用到主分支并忘记我的分支.
因此,思考未来:我是唯一一个从事这个项目的人.如果我使用git的默认方法(快进合并),我的历史将导致一个巨大的主分支.没有人知道我为每个功能使用了一个单独的分支,因为最后我只有那个巨大的主分支.这看起来不专业吗?
通过这种推理,我不想要快进合并,也不知道为什么它是默认的.这有什么好处的?
在我的存储库中,我有一个aq我正在研究的分支.
然后,我承诺了新的工作和错误master.
将这些提交纳入aq分支的最佳方法是什么?创建另一个新分支master并将其合并aq?
我有以下存储库布局:
我想要实现的是从工作分支中挑选一系列提交并将其合并到集成分支中.我是git的新手,我无法弄清楚如何正确地做到这一点(在一次操作中不提取合并的樱桃选择提交范围)而不会弄乱存储库.关于这个的任何指针或想法?谢谢!