标签: git

什么是"git checkout - ." 做?

我想恢复所有本地更改

git checkout -- .
Run Code Online (Sandbox Code Playgroud)

但意外地做到了

git checkout - .
Run Code Online (Sandbox Code Playgroud)

它做了许多我根本无法理解的局部修改.

第二个命令做了什么,是否可以恢复已完成的操作?

git

11
推荐指数
1
解决办法
7126
查看次数

找到用于在Git中创建当前分支的分支?

我正在开展一个由大团队工作的项目.随着时间的推移,人们一直在创建分支机构并将它们推送到远程仓库.

我怎么知道哪个分支是另一个人创建的新分支的根?可以基于当前HEAD创建新分支,但是也可以指定<start-point>哪个可以是提交,标记或分支.如何找出用于创建新分支的分支?

一个额外的问题:提交可以与分支创建一起推送.我想通过在服务器上使用post receive hook来记录那些与新分支有关的提交.钩子与(oldrev,newrev,refname)一起传递,如果我能找到上面问题的答案,那就太好了.

git

11
推荐指数
1
解决办法
3427
查看次数

异步git hook?

我在post-receive上执行单元测试但不希望用户等待它.

我尝试了git-user邮件列表中的建议("只是&它"),但这不起作用:https://groups.google.com/forum/#!topic / git-users/CFshrDgYYzE

即使我把它放在hooks/post-receive中,git似乎还在等待bash脚本退出:

exec-unit-tests.sh &
Run Code Online (Sandbox Code Playgroud)

git githooks

11
推荐指数
1
解决办法
1823
查看次数

什么意味着遥远=.在GIT配置?

我不确定如何(用EGit创建分支,可能)我在我的配置中以此部分结束:

[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "sfc"]
    remote = .
    merge = refs/heads/master
    rebase = true
Run Code Online (Sandbox Code Playgroud)

我想明白这一点.我不确定dot in remote = .是否被解释为url(当前目录)或特殊的存储库名称(我自己的别名)?这是合法/正常/典型,还是我猜这是搞砸了?有一个指向同一个存储库的"远程"规范让我觉得很奇怪.此外,该分支确实存在于遥控器中......这对于推/拉行为的含义是什么?

更多信息:

$ git remote show origin
* remote origin
  Fetch URL: ssh://git@10.0.0.3/var/gitrep/zzz.git
  Push  URL: ssh://git@10.0.0.3/var/gitrep/zzz.git
  HEAD branch: master
  Remote branches:
    master tracked
    sfc    tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local refs configured for 'git push':
    master pushes to master (fast-forwardable)
    sfc    pushes to sfc    (up to date)

$ …
Run Code Online (Sandbox Code Playgroud)

git

11
推荐指数
1
解决办法
589
查看次数

让Git在其"<<<<<<< HEAD"合并行中使用CRLF

是否有可能要求Git在需要合并时将其放入文件的行末尾使用CRLF而不是LF?

使用LF合并

如果在没有可见EOL字符的情况下解决文本编辑器中的冲突,如果按选择删除,很容易意外地将这些LF合并到最后:

按选择删除

离开你:

LF潜入文件!

现在有两个LF已经潜入你的CRLF文件了!

显然,一种替代方案是在解析合并时只需要更多关注行结尾,但我想我会问有什么方法可以告诉Git将CRLF用于它在这里生成的行.

git eol

11
推荐指数
1
解决办法
2483
查看次数

svn2git:无法设置跟踪信息

我试图在svn2git的帮助下将SVN项目迁移到git.执行命令时,它退出时出现以下错误:

Running command: git branch --track "0.0.9" "remotes/svn/0.0.9"
fatal: Cannot setup tracking information; starting point 'remotes/svn/0.0.9' is not a branch. 
Run Code Online (Sandbox Code Playgroud)

开始于:

 svn2git http://<host>/<project>
Run Code Online (Sandbox Code Playgroud)

我找不到任何解决方案,似乎没有多少用户有同样的问题.

我该怎么做才能解决这个问题?

git svn2git

11
推荐指数
2
解决办法
2738
查看次数

git subree push和split添加"-n <newline>"来提交消息

每当我将一个子目录拆分成一个分支时,git subtree split或者(因此?)当我向上游推送一个子树时,新分支/上游提交中的提交消息都有"-n"并且前面有一个换行符.

使用split进行演示最简单:

git init repo
cd repo
mkdir splitme
touch splitme/foo
git add splitme/
git commit -m 'Add foo'
git subtree split -P splitme -b splitme-only
Run Code Online (Sandbox Code Playgroud)

从此,我得到:

$ git log master
commit 6d5164076bd88d1dab8963d91ec013372e58a444
Author: me
Date:   Fri Jul 26 12:22:27 2013 -0500

    Add foo
Run Code Online (Sandbox Code Playgroud)

$ git log splitme-only 
commit 6ce8124a0b5e52d4bba198144d2f3f664d7b19e7
Author: me
Date:   Fri Jul 26 12:22:27 2013 -0500

    -n
    Add foo
Run Code Online (Sandbox Code Playgroud)

如您所见,"splitme-only"分支在提交消息前面加上"-n".这尤其糟糕,因为github默认情况下会折叠除第一行之外的所有内容.因此,您无法在github上轻松浏览这些提交消息.

我已经尝试过使用--annotate可能更具可读性的东西,但这只是向"-n"行添加了一些内容.

行为是相同的subtree push.

有没有办法阻止添加"-n"行?我可以改掉这条线,但当我玩弄它时,它破坏了子树的合并.难道我做错了什么?

在OS X 10.8.4上使用git 1.8.3.4.

git git-subtree

11
推荐指数
1
解决办法
1056
查看次数

使用单个命令进行分支和结帐

创建和使用新分支涉及两个命令:

$ git branch new_branch_name
$ git checkout new_branch_name
Run Code Online (Sandbox Code Playgroud)

我倾向于忘记后者,这可能很烦人.有没有办法使用单个命令执行此操作?也许使用别名或类似的东西?我知道我可以写一个shell函数,但对于这样一个简单而常见的任务来说,这似乎有点多了.

Bazaar在某种程度上使用bzr branch --switch符号来支持这一点.

git version-control git-checkout git-branch

11
推荐指数
3
解决办法
741
查看次数

git add后自动显示状态

我通常的git工作流程是

<make changes>
git add FILES
git status
git commit -m "some remarks"
Run Code Online (Sandbox Code Playgroud)

我需要在哪里git status检查我是否添加了正确的文件.

有没有办法告诉git每个人后自动显示状态git add

git

11
推荐指数
3
解决办法
2405
查看次数

致命:读取错误:由同行重置连接

有人可以帮我摆脱以下几点:

vijay13@ubuntu:~$ git clone git://anongit.kde.org/plasma-mediacenter

Cloning into 'plasma-mediacenter'...

fatal: read error: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)

vijay13@ubuntu:~$ git clone git@git.kde.org:plasma-mediacenter

Cloning into 'plasma-mediacenter'...

Read from socket failed: Connection reset by peer

fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

如何摆脱上述两个问题?

git terminal ubuntu github plasma

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