我发现cherry-pick在某些情况下特别有用,例如,当我有一个feature1分支和一个test-feature1分支时,我想应用测试中发现的更正;或者换句话说,我想测试新功能,为此我需要在测试分支中使用这些新功能。
cherry-pick这里的好处是我可以选择我想在其他分支中应用的具体更改;也许合并整个分支并不有趣。
我在过去的项目中一直在使用它,但我认为这种做法会导致工作流程不一致。是cherry-pick-ing一个不推荐和可避免的做法?
这与如何在 git 中知道分支是否已经合并到 master非常相似?但是是关于检查重新定位的代码。在我目前正在处理的存储库中,似乎有一些功能分支在将更改重新定位到 master 之后被搁置了。在删除分支之前检查是否已完成的最佳方法是什么?
该分支上的大多数建议都建议使用分支上最后一次更改的 SHA id 密钥来检查其在 master 中的存在。我可以看到这是确保合并的最佳方法,但是当您重新设置此 SHA 时,此 SHA 已更改。
我有一个我也会发布的答案,但我想知道人们是否认为有更好的选择。
我想在我的桌面上上传一个名为“hello.txt”的文件到我的 git 存储库,它有一个版本。我该怎么做呢?我阅读了 git 文档,但它说的是:
POST https://<upload_url>/repos/:owner/:repo/releases/:id/assets?name. 如何在 CURL 中做到这一点。我不明白这一点。
如何将此文件作为发布资产发布到我的 github 发布?谢谢
我试图在http://docs.gitlab.com/ee/workflow/gitlab_flow.html上了解 GitLab 的建议流程。但是,我不太确定这个声明:
如果您需要挑选带有修补程序的提交,通常会在功能分支上开发它并通过合并请求将其合并到 master,不要删除该功能分支。如果 master 很好(如果你练习持续交付应该是这样),然后将其合并到其他分支。
这是否意味着,master 中会有 1 个以上的提交?例如,第一次提交(实际上是合并请求)是为了测试修复是否有效,第二次提交是在第一次提交失败时。
另一件事是,(假设我们有一个生产分支)如果我们将修补程序合并到 master 中,我认为我们必须在 master 上部署其他功能,不是吗?否则,我们会在 master 中挑选修补程序提交到生产分支。
实际上,建议的流程不如http://nvie.com/posts/a-successful-git-branching-model/ 中的另一个流程详细。所以,有点混乱。
我在“合并冲突”阶段丢失了添加到 git 的文件。
一步步:
git pull
git status
Run Code Online (Sandbox Code Playgroud)
Git 告诉我“合并冲突”,没关系。然后我创建一个新文件并将其添加到 git。
vi test.txt
git add test.txt
Run Code Online (Sandbox Code Playgroud)
之后,中止合并:
git merge --abort
Run Code Online (Sandbox Code Playgroud)
我既没有在目录中,也没有通过“git fsck”或“git reflog”找到文件“test.txt”。是否可以恢复文件?
当使用 Git LFS 将大文件推送到 git 存储库时,系统上没有安装 git-lfs 的用户可以在没有任何额外设置的情况下克隆它吗?
当我用 交互式添加diff大块头时git add --patch,有时会得到比屏幕长的大块头,但无法less用于翻阅大块头。
这对我来说很奇怪,因为我已经设置了:
[core]
pager = less -FRX --tabs=4
[pager]
diff = diff-highlight | less -FRX --tabs=4
Run Code Online (Sandbox Code Playgroud)
interactive.diffFilter=管道通过less也无助于分页。
我需要做什么git add--patch才能使用它less,以便我可以使用键盘来导航超过一个屏幕的任何输出?
当我的AWS EC2 Ubuntu实例启动时,我有一些cloudinit脚本要执行。
我想使用下面的代码设置GIT配置变量。
#cloud-config
runcmd:
- [ sh, -c, "git config --global user.name 'myname'"]
Run Code Online (Sandbox Code Playgroud)
登录终端时。我可以毫无问题地执行git config --global user.name 'myname'。
但是,当我尝试使用cloudinit代码启动我的实例时。我收到一条错误消息
致命:$HOME 未设置
我的理解是,这是因为实例启动时未设置HOME。
寻找解决方案,以在启动时设置 git 变量或替代解决方案。
当我执行 git cherry-pick 时,出现此错误,我该如何解决?
$ git cherry-pick XXXXXXXXXXXXX
error: commit XXXXXXXXXXXXX is a merge but no -m option was given.
fatal: cherry-pick failed
$ git cherry-pick
-m, --mainline <n> parent number
$ git cherry-pick -m 1234 XXXXXXXXXXXXX
$ error: commit XXXXXXXXXXXXX does not have parent 1234
fatal: cherry-pick failed
Run Code Online (Sandbox Code Playgroud) 我在我的设备中克隆了一个 GIT 存储库并开始使用 VSCode 编辑代码。然后我对我的代码进行了一些更改并成功提交。
但是当我尝试从推送菜单中推送它时,它似乎不起作用。它表明它正在同步,但这种情况会一直持续下去。
我找不到任何设置来配置 git 凭据。
git ×10
amazon-ec2 ×1
cherry-pick ×1
cloud-init ×1
curl ×1
git-add ×1
git-diff ×1
git-lfs ×1
git-merge ×1
git-pull ×1
git-rebase ×1
github-api ×1
gitlab ×1
hotfix ×1
pager ×1
ubuntu ×1