有没有办法git pull直到有东西可以拉。
假设我正在等待一位同事推送他的最新更改,因为我不耐烦并且不看他的屏幕,我只是运行watch git pull直到我看到有东西被拉出,但我可能会错过这一刻并浪费一点比必要的时间更多。(注意:是的,这是一个非常小的不便,但仍然是不便:))
git pull似乎没有不同的返回值,无论它是否实际拉了一些东西,但也许有一些我不知道的晦涩的、未记录的选项?
编辑: 感谢您的回答,我将其添加到我的 .zshrc 中:
alias gitpullwait="git pull | grep "已经是最新的" > /dev/null; while [ $? -ne 1 ]; do git pull | grep "已经是最新的" > /dev/null;完成;通知发送拉 f$
它看起来很丑,但对我有用。
在我的情况下,我正在跟踪其他人合并和删除的远程修补程序分支。
我已经删除了本地分支,但是当我拉取时,我仍然收到上述错误,因为我的 git 配置文件中有以下几行:
[remote "origin"]
...
fetch = +refs/heads/foo/bar:refs/remotes/origin/foo/bar
push = +refs/heads/foo/bar:refs/for/foo/bar
...
Run Code Online (Sandbox Code Playgroud)
可以通过从文件中删除这些行来解决该错误,但有没有办法从命令行执行此操作?
在处理 git 项目时,我想在git pull --rebase每个git push. 然而,我团队中的一些开发人员经常忘记在推送之前打电话git pull --rebase。因此,Git/Gerrit 自动执行合并,这会创建格式错误的提交消息。我想避免这种自动合并。
我想配置客户端 git ,以便当开发人员运行 a 时git push, agit pull --rebase应该自动发生。有什么办法吗?
老实说,我是一个 Git 新手,所以如果我让事情变得过于复杂,请原谅我。
1.) 我的工作目录中有文件 A,有 10 行。同样的文件也在远程仓库中,有 8 行
2.) 当我从远程存储库中提取文件 A 时,git 说“您的分支已与 origin/remote-branch 保持同步”。
第 2 步并没有消除我在本地所做的更改,但 Git 也不会抱怨我在本地所做的其他更改。对我来说,看起来我从远程获得了所有更新。假设几天后,我对另一个文件 B(来自同一分支)进行了更改,并尝试使用“ git add ”提交它们。文件 A 中的另外 3 行现在也被无意中推送到了远程。当然 git status 会告诉我有 2 个修改,但是如果我忘记了 2 天前对文件 A 的更改,并且如果我认为文件 B 是我刚才所做的唯一更改并执行了“ git add ”那我就有麻烦了。
我的问题确实是,git checkout -- fileA是确保我将远程 fileA 与我的 fileA 完全匹配的唯一方法吗?我还看到 git pull -f 但这是有风险的。当我的工作目录中有一些额外的更改时,最安全的方法是什么让我知道 git pull 仍然完成其工作?难道 git 不应该阻止我拉扯吗?奇怪的是,有时它确实会说“您的本地更改可能会因拉取而丢失”,但当文件相当干净并且 git pull 不会影响我的任何本地更改时,它不会一直这样做。我只是想看看如何避免这样的错误,即无意中将某些内容推送到我刚刚在分支中试验文件的存储库。我希望 pull 要么清理它,要么总是出错,但事实似乎并非如此。
感谢您的帮助!
(在 Github 中)假设我有 2 个分支,名为master和dev。我继续工作dev,提交提交c1,然后创建拉取请求PR1,master这将解决bug1。在合并之前PR1(有时我的团队需要大量时间来审查拉取请求),我继续工作,修复,以便bug2我提交提交c2,然后创建另一个拉取请求PR2。但我发现这PR2包括 2 个提交,即c1& c2。这不是我的意图。
那么如何创建一个干净的PR2分支dev,只包含合并c2之前的提交PR1呢?
我们的团队规定,一个拉取请求只能修复一个错误。
抱歉我的英语不好,感谢您的帮助。
当 kubectl 应用 .yaml 将自定义构建的 docker 映像部署到 GCP 中的集群(编辑掉敏感信息)时,我收到以下错误:
已尝试以下但没有运气:
奇怪的是,我们有一个开发人员。环境完全相同(使用 terraform 启动基础设施)并使用相同的文件+图像(显然是不同的项目,因此所需的内容已更改以匹配)并且没有问题。
containers pull image google-cloud-platform google-kubernetes-engine
问候,
我有以下MongoDB对象:
{
"_id": ObjectId("4d0e28938b012fe28754715a"),
"notifications": {
"0": {
"type": "privateMessage",
"fromUname": "Eamorr2",
"time": 1292773522,
"id": "1lfw70h789u13a1e67pv"
},
"1": {
"type": "privateMessage",
"fromUname": "Eamorr2",
"time": 1292773522,
"id": "iwoidjsoskqp23nlwof"
}
},
"toUname": "Eamorr"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试删除元素0,留下我:
{
"_id": ObjectId("4d0e28938b012fe28754715a"),
"notifications": {
"0": {
"type": "privateMessage",
"fromUname": "Eamorr2",
"time": 1292773522,
"id": "iwoidjsoskqp23nlwof"
}
},
"toUname": "Eamorr"
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的(在PHP中),但无济于事:
$customerNotifications->update(array('toUname'=>$uname),array('$pull'=>array('notifications'=>$key)));
Run Code Online (Sandbox Code Playgroud)
但它没有用,我现在完全陷入困境.
任何帮助非常感谢.提前致谢,
状态:学习git.
我在两个系统中执行以下操作
系统1
git reset --hard "SHA Key"
git push origin master # fails
git push -f origin master # succeeds
Run Code Online (Sandbox Code Playgroud)
系统2
git pull origin master
Run Code Online (Sandbox Code Playgroud)
我收到此消息"已经是最新的".
是否有任何原因导致系统1中的更新/重置没有反映在系统2中?
我配置了两个遥控器:"origin"和"upstream".
更改推送默认值很简单,它在设置窗口("推送默认值")和推送对话框("始终推送到所选远程分支")中.
但是,我想更改默认的拉远程.每当我拉或取,TortoiseGit默认为"上游".我希望默认为"origin".
我知道我可以手动编辑本地配置并将"remote = upstream"更改为"remote = origin",但我想知道TortoiseGit UI中是否有办法执行此操作.