我有一个 git 分支。被gitlab合并删除了。现在,发现了一个错误,我想继续在这个分支上工作。我重命名了它,但它仍然跟踪已删除的分支(它不知道 gitlab 删除了该分支)。现在我很好奇,在这种情况下我该怎么办?
我正在学习如何使用 git,我需要从主 github 存储库进行克隆,对其进行分支,进行更改,然后将分支推送到 github 存储库 - 但我发现自己对最好的方法有点困惑就是这样。我知道 git 网上有很多资源,但我找不到一个正是这个问题的资源(尽管如果我错了,我很乐意使用它)。
我一直在我自己的私人 github 存储库上进行测试以查看差异,但似乎没有任何差异。
git clone git@github.com:organization/repo
Run Code Online (Sandbox Code Playgroud)
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
touch file
git add file
git commit -m "added file"
Run Code Online (Sandbox Code Playgroud)
git push
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息“致命:当前分支 newbranch 没有上游分支。要推送当前分支并将远程设置为上游,请使用
git push --set-upstream origin newbranch
但我也看到很多在线教程使用
git push -u origin newbranch
这之间有功能上的区别吗?我确信网上有一些关于差异的资源,但 git 对我来说有点令人困惑,我想我会直接问这个问题来看看人们的想法。
最近切换到新的 Windows 终端,经过几个小时的互联网搜索后,我找不到任何有用的东西,我想要的就是在新的 Windows 终端中设置 cmd 以显示 git 分支,就像 powershell 可以实现的那样。
我对 cmd 非常满意,尤其是它能够使用额外的 linux 命令,并且不想仅仅因为 git 分支的良好显示而切换到 powershell。这是一个源代码,其中对 powershell 的所有内容都有很好的解释,我只想对 CMD 做同样的事情。
提前致谢
我有:
A--B (master)
\
C--D (bad-branch)
\
E--F (my-branch)
Run Code Online (Sandbox Code Playgroud)
我想要的结果:
A--B (master)
\
E--F (my-branch)
Run Code Online (Sandbox Code Playgroud)
我尝试重新建立my-branch基础,master但是当我推my-branch送到存储库时,它与原始版本合并,并且更改后的错误提交又回来了。
我已经将一个SVN回购移动到Git,可能由于一些克隆,我现在留下了一堆看起来像的分支
BranchA
origin/BranchA
remotes/BranchA
remotes/origin/BranchA
remotes/origin/origin/BranchA
Run Code Online (Sandbox Code Playgroud)
即同一分支被列出多次.我怎样才能清理这个烂摊子.有大约50个分支,有些根本不需要,其余的我只会拥有它们一次.
编辑:
对于特定情况,这就是git remote show origin的样子:
Remote branches:
BranchA tracked
origin/BranchA tracked
Run Code Online (Sandbox Code Playgroud)
...
Local branches configured for 'git pull':
origin/BranchA merges with remote BranchA
Run Code Online (Sandbox Code Playgroud)
...
Local refs configured for 'git push':
BranchA pushes to BranchA (up to date)
origin/BranchA pushes to origin/BranchA (up to date)
Run Code Online (Sandbox Code Playgroud) 我正在努力为一个项目做贡献,我想在我的工作中使用git-flow工作流程(?).说,我已经检查了develop远程存储库(github)的分支,并且我已经设置了2个功能分支(T代表翻译,U代表更新):
---o---o---o (D)
|---Ta---Tb (T)
\---Ua---Ub---Uc (U)
Run Code Online (Sandbox Code Playgroud)
现在,对于每个分支,向upstream存储库维护者发出拉取请求,并且他接受所有这些请求并将它们合并到upstream/develop分支.
什么是正确的程序,以便我最终得到:
---o---o---Ta---Tb---Ua---Ub---Uc (D)
|- (T)
\- (U)
Run Code Online (Sandbox Code Playgroud)
有些东西告诉我这git rebase就是我需要的东西.(请注意我在Windows上).
而不是询问特定的git动词(git文档所基于的),我想问一下这个特定任务的最佳方法是什么.
由于被迫提交测试应用程序,我有一个带有丑陋提交日志的git分支.很多提交像:
幸运的是,所有这些提交都在一个分支中.
在合并该分支之前,我希望有机会清理提交日志,合并和重新排序提交.最好的方法是什么?
我们有一个功能分支(feature)前一段时间使用过.来自的更改feature被集成回开发分支(development).但从那时起,development已被修改,并feature没有,即它有旧代码.我们正在重新审视相同的功能,并希望重用此分支.我们如何确保feature= development?
我猜可能有一个重复的问题,但我只是错过了正确的术语.
对于Jenkins管道代码,我们严格不遵循Gitflow工作流程。
X从中有一个分支master,其他技术人员当前可使用该分支进行自己的更改。未来几周分支机构将进行许多提交X。
+----+------------- master
\
\
-----------X (currently used by Developer A)
Run Code Online (Sandbox Code Playgroud)
我的经理要求我在分支Y上创建另一个分支X以进行自己的更改。我需要确保X在我每天在分支上开始编码之前,分支中的分支更改是最新的Y
但是,问题是我每天都需要合并分支X以保持最新,这会导致合并冲突。在创建任何分支之前,我得到以下错误Y:
$ git branch
master
* X
$
$
$ git pull origin X
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because …Run Code Online (Sandbox Code Playgroud) git-branch ×10
git ×9
branch ×3
git-remote ×2
azure-devops ×1
cmd ×1
git-push ×1
git-rebase ×1
powershell ×1
rebase ×1
windows ×1