相关疑难解决方法(0)

如何只为一个目录级别`git ls-files`.

我正在使用msysgit(1.7.9),我正在寻找正确的git ls-files命令调用,以显示当前级别的(跟踪的)文件和目录,无论是从索引还是当前工作目录,如果这是更轻松.

基本上它会给出一个类似于你在Github上看到的目录列表.来自Windows,我不太熟悉正确的方法(?).

git ls glob

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

为什么裸存储库有HEAD

我想知道HEAD裸存储库的目的是什么?它是否仅在克隆存储库时才使用,以了解在克隆存储库中要检出的分支?

请注意,这个问题不是关于what is HEAD,但考虑到它的功能,我想知道为什么在bare存储库中需要它.

git

18
推荐指数
1
解决办法
1063
查看次数

SourceTree - 删除等待推送

如何删除提交,等待推送到远程?

2推着等待

我的情况是,那些排队提交(更改)已被推送(更严重),现在服务器拒绝接受那些因为他们在HEAD后面.

我尝试重置为另一个提交,但是当我回到HEAD时,再次重新出现.

单击存储库>刷新远程状态将无济于事,它实际上添加了第二个等待推送:)

PS:我为我的术语道歉,我对git很新.

.

更新1

当我将feature2提交到master分支时,问题就开始了.我没有权利在那里提交所以它被卡住了.然后我再次回到我的个人分支,这很好.然后我有一个等待提交,永远不会被推,即使我单击Push时选择了正确的(个人)分支.

在此输入图像描述

git push commit git-commit atlassian-sourcetree

14
推荐指数
2
解决办法
3万
查看次数

`git reset --hard master`和`git reset --hard origin/master`有什么区别?

我在Stackoverflow /其他地方尝试了很多链接,以正确理解其行为

git reset --hard option

我知道:

  • 如果省略或如果它被删除origin,则在最近的提交中完成重置origin
  • 如果提供SHA1哈希,则在相应的提交上完成重置.

我不明白的是以下值:

  1. origin
  2. HEAD
  3. origin/master
  4. origin/branch

所有似乎都有相同的行为,即他们指向最新的提交master.

请解释上面提供的所有4值选项的重要性.

我还想知道我是否在特定分支上如何重置为该分支上的最后一次提交?例如v1.2,如果我在,origin/v1.2仍然会带我到最新的提交master.

git version-control github git-reset

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

Git:如何撤消提交*和*恢复到最后一个分支

哦哦...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),却不知道我在做什么(或者Git会做什么).

我现在想要撤消所有这样的事情:

  1. 提交完全颠倒过来(好像它从未完成过,也许从历史中删除它)
  2. 将当前工作目录(在哪里.git)恢复到某个分支(最后一个将立即执行).

我找到了对git reset --softgit reset --hard的引用,但我已经向自己证明了我可以通过过早地使用命令而不完全理解它来做真正的损害.:)

我找到了git reset手册页,但我仍然感到困惑:

  1. 什么是HEAD
  2. HEAD和之间有什么区别 * master
  3. 在我的情况(见上文),我需要使用--soft,--hard或其它(3个选项)?
  4. 我是否需要运行另一个命令(完成后git reset)来"完成"逆转?

更新:阅读以下答案后:

  1. 我是否正确理解在我的情况下我需要做的就是发出一个命令git reset --hard HEAD^
  2. 如何验证反转是否正确执行?

git git-revert git-reset

7
推荐指数
1
解决办法
8164
查看次数

"结账头"是做什么的?

出于好奇,我尝试了以下方法:

git checkout head
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

$ git checkout head
Note: checking out 'head'.
You are in 'detached HEAD' state.

Me@MyPC /c/repo ((9da1bd7...))
$
Run Code Online (Sandbox Code Playgroud)

git checkout HEAD
Run Code Online (Sandbox Code Playgroud)

什么都不做(如预期的那样).那么前命令究竟在做什么呢?

更多信息:是的,我在Windows上.据我所知,它没有创建标签或分支:

Me@MyPC /c/repo ((9da1bd7...))
$ git log -n 1
commit 9da1bd740434923ae55ca1b50efb7c62eb6e0c35
Author: someone else
Date:   Fri Dec 6 15:44:08 2013 +0100

Me@MyPC /c/repo ((9da1bd7...))
$ git tag -l
TestRelease

Me@MyPC /c/repo ((9da1bd7...))
$ git branch -l
* (detached from head)
  master
Run Code Online (Sandbox Code Playgroud)

git

7
推荐指数
1
解决办法
3967
查看次数

git push origin HEAD和git push origin [current-branch-name]有什么区别?

它看起来都对我完成了同样的任务.
是否存在不同的情况?

有什么区别:
git push origin HEAD
git push origin [current-branch-name]

git push

7
推荐指数
1
解决办法
3915
查看次数

当前分支及其跟踪的分支的任何Git快捷方式?

我想做这样的事情:

$ git fetch origin
$ git rebase -i origin/a_very_very_very_long_branch_name
Run Code Online (Sandbox Code Playgroud)

在哪里,我的本地分支名称与a_very_very_very_long_branch_name.

因此,当我执行这种命令时,我不想一次又一次地复制和粘贴长分支名称.

Git中有当前分支名称的快捷方式吗?

git branch shortcut

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

git reset之间的区别 - 硬HEAD ^ vs git reset - 硬HEAD?

什么是^git reset --hard HEAD^做而不只是git reset --hard HEAD 有没有区别?

git github

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

git show本身是做什么的?

如果我git show在git repo中单独使用所有内容,则会显示一堆信息,例如commits,diffs等。

此页面(https://git-scm.com/docs/git-show)只是说:

Shows one or more objects (blobs, trees, tags and commits).

我认为这是最新的提交。还有一些差异(在文档页面中未提及)。

但是到底显示了什么呢?

这是完整的,相当难以理解的输出...

$ git show
commit <sha1 A> (HEAD -> A)
Merge: <sha1 B> <sha1 C>
Author: Snowcrash <my@email>
Date:   Sat Jul 14 14:56:02 2018 -0700

    with both files

diff --cc 1
index <sha1 D>,<sha1 E>..<sha1 F>
--- a/1
+++ b/1
@@@ -1,5 -1,6 +1,12 @@@
  1

++<<<<<<< HEAD
 +A
 +B
 +C
++=======
+ C
+ D
+ E
+
++>>>>>>> …
Run Code Online (Sandbox Code Playgroud)

git git-show

6
推荐指数
2
解决办法
5939
查看次数