命令:
git rebase --no-verify
Run Code Online (Sandbox Code Playgroud)
...允许我在不运行我创建的 git rebase 挂钩的情况下进行变基。
但我还将git pull设置为 rebase 而不是合并,所以现在当我执行 pull 时,它会运行我的 rebase 触发器。有没有办法将 --no-verify 选项传递给 git pull 并让它在变基时使用该选项?
(除了创建包装脚本以暂时将触发器移开,然后再将它们移回的最后手段之外)。
所以让我设置我的场景。我在 Spring Tool Suite (Eclipse 4.5.1) 中使用 EGit 4.1.1。我和我精通技术的同事从远程 URL 克隆了相同的 git 存储库。我精通技术的同事更喜欢命令行,他使用 VIM 修改文件,然后发出命令
git add .
git commit -m "Modified file"
git push
Run Code Online (Sandbox Code Playgroud)
现在更改位于远程存储库中。现在,我不太喜欢 CLI,更喜欢 GUI,我在 Eclipse 中使用 EGit。要接收更改,我右键单击该项目(我最初是使用 EGit 克隆的),转到 Team -> Pull,然后我被告知有“ Nothing to fetch ”。出于理智的考虑,我打开了“Git Reflog”视图,我看到我同事的更改没有列出,我开始挠头。
所以我转到命令行并发出命令git pull,瞧!,它拉入了我的同事更改:
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 14 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From git://hostname.domain.com/git-repo
* branch master -> FETCH_HEAD
Updating 123ae12..68cd2f0
Fast-forward …Run Code Online (Sandbox Code Playgroud) 好吧,我们再次使用更多 Git 优点。它找到了其他方法来使简单的任务变得困难甚至不可能……
git pull -X theirs https://github.com/weidai11/cryptopp.git master
From https://github.com/weidai11/cryptopp
* branch master -> FETCH_HEAD
Auto-merging GNUmakefile
error: cannot spawn notepad++.exe: No such file or directory
error: unable to start editor 'notepad++.exe'
Not committing merge; use 'git commit' to complete the merge.
Run Code Online (Sandbox Code Playgroud)
notepad++.exe是几乎所有其他 Windows 可执行文件所在的位置。它在程序文件中。这不是秘密,也不是隐藏的位置。
再试一次,这样它就不会用无用的废话浪费我的时间了:
# Rewind past broken git
git checkout HEAD~3 -f
# Back to master
git checkout master -f
# Tray again; avoid the prompt
$ git pull -X theirs -m "Sync with Upstream …Run Code Online (Sandbox Code Playgroud) 假设我在分支“abc-test”
git pull origin master
Run Code Online (Sandbox Code Playgroud)
这是否会将 master 分支与我当前的分支('abc-test')合并,或者我是否需要运行更多命令?
以下问题Can “git pull” automatically stash and pop pending changes有使用两者的解决方案:
git pull --rebase --autostash
git pull --ff-only
我有点困惑我应该使用哪个。他们真的完成了相同的结果吗?提出了非常相似的问题,其中没有--autostash参数以及--rebase
我一直在使用'git pull origin'查看我朋友项目的更新,但我想知道我是否应该使用'git pull remote'来代替.
我想从存储库中取出,我相信来自该存储库的任何更改集与我的相撞,是更好的选择.
我如何自动化拉动,这样我就不必处理任何合并冲突,而且我从中拉出的存储库总能赢得这场战斗?
看看命令行选项,我不确定git pull --squash我是否正在寻找,或者我是否必须采用某种合并策略.我无法弄清楚我会传递给谁
-s <strategy>
--strategy=<strategy>
Run Code Online (Sandbox Code Playgroud)
要么
-X <option>
--strategy-option=<option>
Run Code Online (Sandbox Code Playgroud)
如果这确实是我应该使用的标志之一.
我对git有以下问题。
我是git新手。我想获取branch1本地的最后状态。
现在我打开branch2和branch1本地存在。
现在我做
请澄清一下是否先fetch多余?
在极少数情况下,git pull将在我们的网站上引起问题,我需要快速回顾时间,以便开发人员可以解决问题。我已经尝试过了,git reset HEAD@{1}但是由于某些文件仍在更改,因此无法解决问题。好像它只回滚一些文件。
我可以调用一个命令来可靠地还原最近git pull命令之前的文件吗?
$ git pullgit存储库上运行命令.$ git pull
我需要这个信息:
remote: Enumerating objects: 2866, done.
remote: Counting objects: 100% (2866/2866), done.
remote: Total 4840 (delta 2865), reused 2865 (delta 2865), pack-reused 1974
Receiving objects: 100% (4840/4840), 7.51 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (3810/3810), completed with 531 local objects.
From https://github.com/erlang/otp
76da23bb4e..6053c0e4d7 master -> origin/master
77cff66931..39968f062e maint -> origin/maint
934f9974eb..f30b1052c7 maint-21 -> origin/maint-21
* [new tag] OTP-21.2.6 -> OTP-21.2.6
* [new tag] OTP-20.3.2.1 -> OTP-20.3.2.1 …Run Code Online (Sandbox Code Playgroud)