我需要获取 GitLab 中两次提交之间的差异。我已经阅读了执行此操作的说明,但它们与 GitLab 的 diff 形式不一致。
我必须指定“to”项目的名称(“from”项目与当前项目挂钩)以及“from”和“to”提交。但是当我选择“存储库”>“比较”时,我得到以下信息:
该表单提示我输入“to”项目以及“from”和“to”分支的名称。没有地方可以选择“from”和“to”提交!
即使我按照比较所选分支的不同提交的说明进行操作,我是否可以显示一个仅用于比较不同分支的最新提交的表单?我不这么认为;最后一个按钮标记为“交换修订版本”,而不是“交换分支”。该表单认为它邀请我选择两个提交,但不允许我这样做。
我尝试在“分支”字段中输入提交 ID。GitLab 不会让我这么做。这些字段是下拉菜单。他们让我输入一个值,但这只是分支名称列表的过滤器;当我输入提交 ID 时,GitLab 找不到匹配的分支,并且我无法选择任何内容。
这应该如何运作?
我在一个分支中有多个提交.当我推送这些提交以进行代码审查时,我们的代码审查工具会为每个提交创建一个审核.
为了避免这种情况,我想将多个提交合并到一个提交中.与此同时,我不想失去承诺的历史.是否可以仅为审查创建新分支,并将我的主分支中的所有提交合并到我的审核分支中的单个提交中?我该怎么做呢?
我已将错误的文件提交给我的分支并将其推送到原点.我看过如何在Git中撤消最后一次提交的文章?这涉及撤消本地提交,但我的问题是我已将提交推送到原点.如何撤消?
是否有一个url参数我可以传入gitweb(或我能做的任何其他事情)告诉它不要向我显示空格的变化?
背景故事:我有一个文件生成过程,它创建了数百个文件然后以编程方式检入git.最近我对这个过程做了一些小改动,导致从它生成的每个文件中删除了一堆空格,并且只对它生成的几个文件进行了一些非空白更改.我正在尝试使用gitweb来验证我的非空白更改是否在这些文件中,但是由于在看到任何真正的更改之前我必须筛选的所有空白更改,所以很难做到.我知道如果我从命令行执行git diff我可以将它传递给-w参数,但我真的只是想尝试使用gitweb.
我试图恢复到早期的git提交,但得到错误"错误修订".为什么?
这是一个成绩单(删除了作者姓名):
Ellen@ELLEN-PC /c/Users/Susan Mills/git/hello-github (master)
$ git status
# On branch master
nothing to commit, working directory clean
Ellen@ELLEN-PC /c/Users/Susan Mills/git/hello-github (master)
$ git log | head
commit e3eb30cc7ca6d4cd10de755b63821cad75da1e83
Date: Wed Feb 5 17:54:32 2014 -0800
I changed my greeting.
commit 063ac580e28bab524286dac7b0a8f88d9e7d365f
Date: Mon Feb 3 07:53:19 2014 -0800
Ellen@ELLEN-PC /c/Users/Susan Mills/git/hello-github (master)
$ git revert 9e7d365f
fatal: bad revision '9e7d365f'
Run Code Online (Sandbox Code Playgroud)
为什么我会得到"糟糕的修改",我该怎么办?我git bash在Windows 7上使用我的起源于github.
假设我有提交哈希,但没有对git存储库的访问权限,是否有可能获得提交提交的时间?
如何才能做到这一点?
根据此答案,提交哈希包含完成的日期和时间。
例:
1484e89060b2043be0b71209bacc2254161f1a8f被做了Wed Sep 3 09:30:59 2014 +0300。
有时,当您彻底更改文件时,会触发重写:
yes | head -256 > pa.txt
git add .
git commit -m qu
truncate -s128 pa.txt
yes n | head -64 >> pa.txt
git commit -am ro
Run Code Online (Sandbox Code Playgroud)
结果:
[master 79b5658] ro
1 file changed, 128 insertions(+), 256 deletions(-)
rewrite pa.txt (75%)
Run Code Online (Sandbox Code Playgroud)
但是,对于较小的更改,这不会发生:
yes | head -128 > pa.txt
git add .
git commit -m qu
truncate -s64 pa.txt
yes n | head -32 >> pa.txt
git commit -am ro
Run Code Online (Sandbox Code Playgroud)
结果:
[master 88ef937] ro
1 file changed, 32 insertions(+), 96 …Run Code Online (Sandbox Code Playgroud) 在git stash创建2个提交时.一个由stash引用引用并具有2个父提交.一位家长是我们保管藏身处的索引.另一方父母有我们藏匿的实际内容.
为什么存储需要2次提交?在我看来,只有1就足够了.即只是stash引用具有实际内容的提交.
这不行吗?
我执行以下命令序列:
git init rep
cd rep/
echo '111' > 1.txt
git add 1.txt
git commit -m '1'
git checkout -b dev
echo '222' > 1.txt
git checkout master
more 1.txt
Run Code Online (Sandbox Code Playgroud)
作为这些命令的结果,我看到了
222
Run Code Online (Sandbox Code Playgroud)
而且我不明白为什么。如您所见,我创建并进入'dev'分支。我在那里做了一些更改,但是我没有添加也不提交它们。从“ dev”回到“ master”后,为什么还能看到我在“ dev”中所做的更改?在我添加,提交并将它们合并回master之前,他们不应该留在dev中吗?
我了解人们总是需要一条消息来提交更改,但是何时以及为什么还需要标记一次提交?假设我进行了一些更改并使用
git add -A
git commit -m "add feature 1"
Run Code Online (Sandbox Code Playgroud)
现在
git tag -a -m "includes feature 1" v0.1
Run Code Online (Sandbox Code Playgroud)
问题是,何时才有意义。
git-commit ×10
git ×9
git-diff ×2
date ×1
diff ×1
git-add ×1
git-branch ×1
git-revert ×1
git-stash ×1
git-tag ×1
gitlab ×1
gitweb ×1
whitespace ×1