我正处于承诺的中间.我在vim中输入了我的提交消息.我现在想起我需要改变一些东西.我意识到还有其他选择可以实现我想要的,但我想知道是否有一种方法可以中止提交但仍保存到目前为止我输入的提交消息.
看似完成推动后,我的git push挂了.我要去git推
Counting objects: 51, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (47/47), 27.64 MiB | 6.47 MiB/s, done.
Total 47 (delta 4), reused 0 (delta 0)
Run Code Online (Sandbox Code Playgroud)
它挂在这里,我必须控制-c回到命令行.我曾经在这个项目中做过几次提交,现在有了问题.我在我的机器上尝试了其他回购,它们工作正常.这里发生了什么?
我git rebase最近开始使用,并不是100%肯定我做得对.为了这个问题,原点有两个分支,master并且next分支来自master.
自上次两者同步以来,master有2次提交和next6次:
$ git log --oneline origin/next..origin/master
59b5552 master commit #2
485a811 master commit #1
$ git log --oneline origin/master..origin/next
4ebf401 next commit #6
e9b6586 next commit #5
197ada0 next commit #4
4a2c3c6 next commit #3
040a055 next commit #2
84537bf next commit #1
Run Code Online (Sandbox Code Playgroud)
当我结账next并执行时git rebase -i origin/master,我得到以下内容:
$ git status
# On branch next
# Your branch and 'origin/next' have diverged,
# …Run Code Online (Sandbox Code Playgroud) 可以做以下吗?
git rebase --interactive标准样板输出到文件,而不是输出到文件并在编辑器中打开它.git rebase使用已编辑文件的名称重新运行.用例:当然是脚本式的变基.例如,请参阅如何以非交互方式在Git中重新提交提交.
我在OSX上使用SourceTree并使用Git推送到Visual Studio Online.我收到以下错误:
POST git-receive-pack(490857233字节)
错误:RPC失败; 结果= 22,HTTP代码= 404
致命:远程端意外挂断
所有最新
完成但有错误,见上文
我已经尝试过以下方法:
git config --global http.postBuffer 524288000
Run Code Online (Sandbox Code Playgroud) 我复制了一个文件并同时对它进行了一系列更改(即在一次提交中).然后我继续在后续提交中进行更改.我现在想将该提交分成两个 - 一个只是将文件复制到新位置,另一个修改该文件.我该怎么办?如果这是最近的提交,那将很容易,但现在回到历史.
我将另一个分支重新绑定到我的结账分支上,并在rebase期间发生冲突.我解决了合并冲突.
$ git status
rebase in progress; onto 77c951b
You are currently rebasing branch 'test' on '77c951b'.
(all conflicts fixed: run "git rebase --continue")
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: br_boss_buha_faktura/forms/br_boss_buha_faktura_head_dtl.frm
modified: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val
new file: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client_name.val
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val
Run Code Online (Sandbox Code Playgroud)
我是否需要提交上述已解决的合并冲突,git commit还是可以直接进一步使用git rebase --continue?
使用git bisect,我们可以放大提交之间可能引入的问题.
我想知道是否还有一种方法可以在一次提交中让git遍历(组合)文件,这样你就可以找出导致问题的文件/部分?
我在错误的分支()上对代码做了一些更改dev。我想将所有更改转移到master分支,我从这里得到了一些线索,但我不清楚git stash存储是否仅暂存文件,甚至是未暂存和未跟踪的文件?
因为,切换分支后,我需要将未暂存和未跟踪的文件提交到master分支上。
分支机构状态dev:
\xe2\x9d\xaf git status\nOn branch dev\nYour branch is up to date with \'origin/dev\'.\n\nChanges not staged for commit:\n (use "git add <file>..." to update what will be committed)\n (use "git restore <file>..." to discard changes in working directory)\n modified: __init__.py\n modified: src/App.py\n modified: src/analysis/insis.py\n modified: src/access/via/db.py\n modified: src/process/DM.py\n modified: start.sh\n modified: utility/utils.py\n\nUntracked files:\n …Run Code Online (Sandbox Code Playgroud) 我想在最近几天解决这个问题.
首先,我在代理服务器后面工作,我使用Cntlm建立连接,我尝试在我的Visual Studio Online帐户上创建一个小存储库,一切都按预期工作,我能够克隆和推送.
我创建了另一个存储库,这次更大(整个回购大约是800MB),当我试图推送时.它需要我通过身份验证周期,然后它就会挂起(我已经将它挂了24小时而没有任何反应).postBuffer正如其他地方所建议的那样,我已经将git 增加到了524288000,但这并没有帮助.
我已经设定了更多
GIT_CURL_VERBOSE=1
Run Code Online (Sandbox Code Playgroud)
然后当我跑:
git push origin master -v
Run Code Online (Sandbox Code Playgroud)
这是它被卡住的地方:
> POST /DefaultCollection/_git/PROJex/git-receive-pack HTTP/1.1
Authorization: Basic ZGRpbWl0cm92OkQxbxxxxxx
User-Agent: git/1.9.2.msysgit.0
Host: [user].visualstudio.com
Accept-Encoding: gzip
Content-Type: application/x-git-receive-pack-request
Accept: application/x-git-receive-pack-result
Content-Length: 37423253
* Connection #1 to host localhost left intact
Run Code Online (Sandbox Code Playgroud)
我看到内容长度明显大于小型回购.我还应该注意到有500多个提交日志.
现在我认为它可能是一个代理问题,所以我在没有代理的情况下在不同的网络上尝试了它,我得到了相同的结果.除了http(s)之外的任何内容都不是我的设置中的选项.
我已经在一个功能部门工作了几个星期,并且有大约80个提交的历史,涉及我们项目的许多部分的工作.对于小功能,我只需要重新定义,将提交压缩成一个简洁的提交,合并它以进行开发,然后推送它.但在这里,我已经积累了很长的历史,承诺涉及许多不同的部分.
我想将它们拆分成较小的提交,即"功能F的完成部分A""完成部分B"等等,但是工作不是线性的,并且每个部分都是同时建立的.
我可以将它们全部压缩成一个提交并推送它,但是我会失去所有的历史记录,这可能会使调试在未来变得很痛苦,因为它是如此大的变化.
我不熟悉在专业环境中使用git,所以我不确定最佳实践.你对这种情况有什么看法?
如前面的问题所述,您可以将提交拆分为较小的补丁.但是,这些答案建议git add -p,这可以完成工作,但如果我想要的是每个块的一次提交,则按照文件中的给定顺序进行繁琐.有没有办法实现这一点,自动?
git ×12
git-rebase ×4
azure-devops ×2
bash ×1
bitbucket ×1
git-bisect ×1
git-branch ×1
git-merge ×1
github ×1
gitlab ×1
gitlab-ci ×1
merge ×1
scripting ×1