小编Rom*_*eri的帖子

当更改 Github 上的拉取请求的基础分支时,哪些提交将被删除?

协作者在 Github 存储库上创建了基于master分支的拉取请求。我想将其合并到我当前正在处理的下一个发布分支 ( 2.0.3) 而不是master分支。正如几个答案所指出的,我可以通过单击拉取请求标题旁边的“编辑”,然后更改基本分支来完成此操作。

但是,当我这样做时,我收到一条警告“旧基础分支的一些提交可能会从时间线中删除”。Github帮助页面还指出,“当您更改拉取请求的基本分支时,某些提交可能会从时间线中删除。”

谁能解释一下这个警告指的是哪个提交,以及它们何时可以被删除?这些提交是在master分支、拉取请求还是新的基础分支 ( 2.0.3) 中?“从时间线中删除”是指 Github 上拉取请求的讨论页面,还是意味着从存储库中删除提交?

更新

正如 @RomainValeri 指出的,此过程不会从存储库中添加或删除任何提交,它只是更改拉取请求中显示的提交,因为其中一些可能不再位于分支的基础和提示之间。然而,尖端仍将与以前相同的最终状态。

就我而言,拉取请求 ( feature) 在我的请求之后分支出来master,如下所示:

A---B---C---D <<< master
     \       \
      \       E---F <<< feature (pull request)
       \
        G---H <<< 2.0.3
Run Code Online (Sandbox Code Playgroud)

因此,当我将拉取请求的基础从 更改为 时master2.0.3它现在报告拉取请求包括提交 C、D、E 和 F,而不仅仅是 E 和 F。但是我不希望拉取请求中包含 C 和 D,所以我先合并master2.0.3. 这给出了这个:

A---B---C---D ---<<< master
     \       \    \
      \       \    E---F <<< …
Run Code Online (Sandbox Code Playgroud)

git github github-api pull-request

6
推荐指数
1
解决办法
3305
查看次数

如何对齐 git 中的列以改进格式?

我想改进“gitbranch”命令的格式,我在其中添加了包含提交日期提交用户的逻辑。

git for-each-ref refs/heads/ --format='%(HEAD) %(颜色:粗体黄色)%(refname:short)%(颜色:重置)%(颜色:绿色)%(committerdate)%(颜色:重置) - %(内容:主题) %(颜色:暗白色) - %(作者姓名)%(颜色:重置)'

在此输入图像描述

是否有办法改进从第一个(实际)输出到第二个(所需)输出的格式?

这根本不是什么紧急的事情,但却是一件好事。我使用过 git 格式,但我的知识有限。

git format git-branch

6
推荐指数
1
解决办法
804
查看次数

在Android Studio 3.3.1的Github中使用“还原”时,为什么不能回滚到某个点?

我提交并推送我的代码3次,分别是Submit 1,Submit 2和Submit 3。

我希望将我的代码回滚到Submit 2并将其推送到远程存储库。

因此,我对“提交2”点(请参阅图像“ 执行还原”),“文件与冲突合并”对话框显示(请参见图像文件合并)和“合并”的子对话框进行了还原操作,就像图像“合并的孩子”一样

答:我不明白为什么执行还原操作时会显示以下代码?看来系统已准备好所有历史记录提交记录以让我合并。

<<<<<<< HEAD
//Submit 3
=======
//Submit 1
>>>>>>> parent of 86821fc... Submit 2
Run Code Online (Sandbox Code Playgroud)

B:而且,无论我选择接受,接受还是合并...命令,我都无法得到正确的结果(将代码回滚到Submit 2)。为什么?

C:如果启动“合并...”操作,系​​统将如何处理?

提交1 在此处输入图片说明

提交2 在此处输入图片说明

提交3 在此处输入图片说明

还原 在此处输入图片说明

合并文件 在此处输入图片说明

合并之子 在此处输入图片说明

git github git-revert git-reset android-studio

5
推荐指数
1
解决办法
196
查看次数

如何在保持子分支完整的同时合并父分支

我目前有一个 master 分支,出于这个问题的目的,我们将其称为“分支 A”。我想开发一个基于我在分支 A 中编写的代码的新功能,但它是一个重要的功能,所以我想创建一个新分支。我们称这个新分支为“分支 B”。我现在需要开始在分支 B 上工作,但分支 A 将在创建分支 B 之后但在分支 B 完成之前的某个时刻合并到 master。有没有办法做到这一点,以便保留分支层次结构?这是我想要的可视化:

合并前:

_______ master
  \________ branch A
       \________ branch B
Run Code Online (Sandbox Code Playgroud)

合并后:

_______ master (with branch A merged)
   \_______ branch B
Run Code Online (Sandbox Code Playgroud)

我基本上希望我的分支结构保持完整,但向上移动一个级别。

这是我不想发生的事情:

合并前:

_______ master
  \________ branch A
       \________ branch B
Run Code Online (Sandbox Code Playgroud)

合并后:

_______ master (with both branch A and branch B merged)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

git merge git-merge

5
推荐指数
1
解决办法
1277
查看次数

“--abort”和“--quit”作为“cherry-pick”的定序器子命令有什么不同?

根据doc,在 的三个音序器子命令中cherry-pick,我们有这两个,对我来说,奇怪地相似:

--quit
Run Code Online (Sandbox Code Playgroud)

忘记当前正在进行的操作。可用于在樱桃挑选或恢复失败后清除音序器状态。

--abort
Run Code Online (Sandbox Code Playgroud)

取消操作并返回前序状态。


到目前为止,我一直在使用--abort,而且效果很好。什么--quit是不同/优选的用例?

git git-cherry-pick

5
推荐指数
2
解决办法
735
查看次数

如何查看 git 添加的文件?

有时我运行时git add .会添加不应该添加的大文件。如何在未提交的情况下查看添加了哪些文件?以及如何一次“取消添加”这些文件或所有文件,以便我可以修复.gitignore

git git-add git-stage

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

如何通过未分阶段的更改正确切换开发设备?

我一直在两种设备上进行开发。

当需要外出并使用我的笔记本电脑时,我通常会做的是大规模暂存我的待处理更改,提交它们并推送它们,以便我稍后可以通过从我的笔记本电脑中拉出来恢复开发。

然而,显然,仅仅进行一堆随机更改并将它们推入一揽子提交之下是一种不好的做法。

有没有什么方法可以在另一台设备上推送git stash、拉出 stash 并让所有阶段仍然处于挂起状态。

git git-stash

4
推荐指数
1
解决办法
147
查看次数

为什么Git需要设计Index/Stage?

下图是Git流程图,我很奇怪为什么Git需要设计Index /Stage

您知道RepositoryWorkspace之间的通信是本地的,因此RepositoryWorkspace之间的提交或回滚很容易。

为什么Git需要设计Index/Stage?

图像

在此输入图像描述

git version-control git-index

4
推荐指数
1
解决办法
766
查看次数

git log 命令不显示 HEAD 信息

我正在创建一个 git 存储库并使用git commit. 提交后git log,我可以看到提交信息,但我看不到该HEAD信息。以下是我遵循的步骤:

$ git config --global user.name "abc"
$ git config --global user.mail "abc@abc.com"
$ git init
  Initialized empty Git repository in /home/aishwarya/github.com/temp/.git/
$ touch a.txt
$ git add a.txt

$ git commit --message "first commit in NonBareRepo"
  [master (root-commit) 6d46130] first commit in NonBareRepo
   1 file changed, 0 insertions(+), 0 deletions(-)
   create mode 100644 a.txt
$ git log
  commit 6d46130416eef0104408d575d8d4958457fe1dab
  Author: abc <abc@abc.com>
  Date:   Mon Feb 3 22:07:18 2020 …
Run Code Online (Sandbox Code Playgroud)

git git-log

4
推荐指数
1
解决办法
1245
查看次数

Git show:显示文本选择的修订版中的斑点

我知道您可以使用gitrevisions(1) 中记录的:/<text>-syntax选择修订版,例如

git show :/"new change"
Run Code Online (Sandbox Code Playgroud)

将在提交消息中显示带有“新更改”的(最年轻的可到达的)提交。

我也经常在特定版本中使用该功能来处理git showblob,例如

git show myBranch:./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

在修订状态下查看coolFile.csv(以我的相对路径)的全部内容。 myBranch

现在我的问题是:我可以使用:/<text>语法选择一个修订版,然后在该修订版中显示一个斑点吗?我努力了

git show (:/"new change"):./coolFile.csv
git show :/"new change":./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

这引发了错误

致命:不明确的参数':/新更改:./coolFile.csv':未知修订版或路径不在工作树中。
使用“--”将路径与修订版分开,如下所示:
“git [<revision>...] -- [<file>...]”

所以我尝试了

git show :/"new change" -- ./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

它什么也不打印,因为该语法只打印该文件中该修订版的更改。

git git-show

4
推荐指数
1
解决办法
72
查看次数