标签: git-branch

git merge分支像拉链一样时尚

我有一个Git repo,例如两个分支"master"和"other".它们几乎包含提交到每个子文件夹,因此历史记录中的修订时间没有冲突.现在我想删除"其他"分支; 并以拉链式方式将其提交合并为"master",例如:

Master A1 A2 -  -  -  M3 M4  
Other  B1 -  -  -  B2 -  -   B3
Run Code Online (Sandbox Code Playgroud)

Master A1 B1 A2 B2 M3 M4 B3
Run Code Online (Sandbox Code Playgroud)

和"其他"消失.因此只剩下一个线性主分支.

这可能与Git的工具包有关吗?

git git-branch

2
推荐指数
1
解决办法
465
查看次数

git mess -overwrite master with branch?

今天早上我让自己陷入正确的尾旋,不得不创建一个分支以恢复到我最后一次提交.现在主分支是一团糟,我唯一感兴趣的是这个带有恢复的新分支.我如何强制master与恢复的分支相同?

git github git-branch

2
推荐指数
1
解决办法
856
查看次数

如何让现有的git分支跟踪远程分支?

可能重复:获取现有的git分支以跟踪远程分支

我知道如何建立一个跟踪远程分支的新分支.但是,如何使现有分支跟踪远程分支.我知道我可以编辑.git/config文件,但似乎应该有一个更简单的方法.

git branch git-branch

2
推荐指数
1
解决办法
488
查看次数

如何从Git中的标签名称获取分支?

我想从给定的标签中获取分支名称.我试过了,git describe --tag <tag-name>但这并没有为我提供任何分支名称.我尝试使用gitk显示标签和分支,但gitk没有显示标签.当我列出标签时,git tag -l我看到列表中存在标签名称.

我只想要一个简单的命令,可以在提供标签名称时告诉我分支.

git git-tag git-branch

2
推荐指数
1
解决办法
1364
查看次数

将更改的文件从功能合并到修补程序git flow

我有3家分店

开发,掌握和使用git flow feature start创建的功能分支。

现在,我想将由功能生成的提交合并到单独的修补程序中,这样就可以将其合并到master中,而无需将developer分支合并到master中。我该怎么做?

为了使

开发有100多个提交,这些提交是为单独发行的,

我从开发人员分支出来,并希望将其制作为单独的修补程序。

问题是hotix是一个主分支,因此如果我执行git merge功能,git会将所有开发人员提交与我对该功能的少数提交进行合并。

问题是。如何挑选功能?

编辑:

@Pigueiras

我更喜欢在这种情况下绘制图表。 在此处输入图片说明

我只需要将红色标注的提交从功能转移到修补程序即可。

git version-control merge git-flow git-branch

2
推荐指数
1
解决办法
1683
查看次数

如何使用git删除本地和远程分支

所以现在这些是我的分支:

WalnutiQ> git branch -a
* develop
  feature-model_in_javascript
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature-model_in_javascript
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我的目标是删除分支功能-mode_in_javascript,所以我尝试了:

WalnutiQ> git branch -d feature-model_in_javascript
Deleted branch feature-model_in_javascript (was 4604f04).
Run Code Online (Sandbox Code Playgroud)

所以现在当我检查我的分支时,我得到:

WalnutiQ> git branch -a 
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature-model_in_javascript # <== HOW DO I DELETE THIS????
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

如何删除该远程分支?我通过点击https://github.com/WalnutiQ/WalnutiQ/branches上的删除按钮手动删除它

git git-branch

2
推荐指数
1
解决办法
349
查看次数

删除名称包含怪异字符的分支

我使用Git Bash,并且错误地创建了一个名为-D的分支。在通过Google搜索之后,我尝试了

git branch -d -- -D 
Run Code Online (Sandbox Code Playgroud)

获得

error: branch '-D' not found. 
Run Code Online (Sandbox Code Playgroud)

而且我也试图从gitk中删除它,但没有成功。

另一方面,我注意到如果git branch从控制台键入或在gitk上显示分支名称,则分支名称会更改。例如,分支在控制台中为-D,但在gitk上用奇怪的字符命名。

用git log获得的分支名称

分支名称显示在gitk中

此时,我将怪异的名字从gitk复制/粘贴到控制台,然后发出

git branch -d â?"D
Run Code Online (Sandbox Code Playgroud)

没有成功。

但是,我收到警告消息:“警告:您的控制台字体可能不支持Unicode。如果在输出中遇到奇怪的字符,请考虑切换到TrueType字体,例如Lucida Console!”

作为最后一次尝试,我尝试从gitk中删除该分支,但出现一个弹出窗口,显示“错误:分支,找不到另一个奇怪且较长的名称 ”。

这次,由于无法从弹出窗口复制,因此无法从弹出框复制另一个粘贴又长又怪异的名称到控制台。

git branching-and-merging git-branch

2
推荐指数
1
解决办法
1074
查看次数

如何从github上的Git分支中删除不需要的文件(如元数据)

我在本地存储库上创建了一个分支,并添加了一些新的java文件.我使用以下命令将我的源代码添加到本地分支.

git add --all

这实际上从Eclipse中添加了一些不需要的元数据文件,例如.metadata/.plugins/org.eclipse.resources/.history/7e

我使用以下命令将更改提交到head:

 git commit -m "Commit message"
Run Code Online (Sandbox Code Playgroud)

使用 - 将分支推送到我的远程存储库 -

 git push origin <branchname>
Run Code Online (Sandbox Code Playgroud)

我意识到,我将不需要的文件添加到我的远程分支,并希望删除其中一些不是实际源文件的文件.

如何在不弄乱我的java文件的情况下将它们从git分支中删除.

不受欢迎文件的屏幕截图

非常感谢您的回复

git github git-branch

2
推荐指数
1
解决办法
4674
查看次数

我用-d删除了一个分支,我该如何恢复/恢复它?

我删除了一个分支:

git branch -d <branch>
Run Code Online (Sandbox Code Playgroud)

它说:

 git branch -d oleg/feature/1533692217
warning: deleting branch 'oleg/feature/1533692217' that has been merged to
         'refs/remotes/origin/oleg/feature/1533692217', but not yet merged to HEAD.
Deleted branch oleg/feature/1533692217 (was f7a4a13).
Run Code Online (Sandbox Code Playgroud)

我想我知道这意味着什么,如何用名称恢复分支:

oleg/feature/1533692217
Run Code Online (Sandbox Code Playgroud)

有没有办法恢复分支而不检查它?

请注意,当我将其与集成分支合并时,我压缩了我删除的功能分支,这就是为什么警告消息可能已经出现的一个原因.可能git不处理这种情况?

git git-checkout git-branch

2
推荐指数
1
解决办法
70
查看次数

合并并推送到远程时,是否有任何方法可以忽略本地提交历史记录?

我们希望在git上有每个开发人员的分支。换句话说,开发人员可以从“开发”分支中分支出来,并创建自己的本地“功能”分支来进行工作。

当他们对工作感到满意时,可以切换到devel,确保它们具有最新文件,然后合并到其“功能”分支中,并在解决任何冲突后将结果推送到原始位置。但是,有一个问题-这使得提交历史非常混乱。

如果这样做git log --graph,“功能”分支不会显示,这就是我们想要的。但是,开发人员现在进行的每个提交都会显示在devel分支上。太丑了 如果有10个开发人员,并且每个开发人员在全部合并到devel中之前对他们的功能分支进行了30次提交,那么devel现在将显示180次提交的历史,共6个功能。如果历史记录仅显示6的消息合并为devel,那就更好了。

有什么方法可以避免合并时使历史变得“混乱”并在合并时忽略本地分支的历史?还是这只是与git对抗过多?

我意识到这听起来有些奇怪,但是他们非常不喜欢所有这些对象最终存储在远程仓库中的想法

git git-merge git-branch

2
推荐指数
1
解决办法
88
查看次数