以下命令以json格式显示有关上一次git提交的一些元数据:
git show --quiet HEAD --pretty=format:"{\"hash\":\"%h\", \"author\":\"%cn\", \"commit date\":\"%cd\"}"
{
"hash":"0fc0fc0",
"author":"Adam Matan",
"commit date":"Sun Jan 26 12:26:19 2014 +0200"}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在UTC/GMT时区中显示日期,例如"Sun Jan 26 10:26:19 2014"?
我在这篇文章中关注了JörgWMittag 的回答,并将meld配置为我的git中的difftool.现在,我可以使用此命令完美地查看和比较不同分支中文件的差异:
git checkout branch1
git difftool branch1:file.f90 branch2:file.f90
Run Code Online (Sandbox Code Playgroud)
我执行了上面的命令,制作并保存了变化.但是,当我使用以下方法检查文件时:
emacs file.f90
Run Code Online (Sandbox Code Playgroud)
我之前在meld中所做的更改根本没有保存.我不明白为什么会这样; 我必须没有完全正确配置融合作为差异工具.任何人都可以帮我解决这个问题吗?谢谢!!
我有一个Git仓库中的子项目,我想删除但是我无法删除.在GitHub Web界面上,子模块显示为黑色(或灰色)文件夹图标,不可单击.

该文件夹存在一些问题,即使我的本地代码在该文件夹中有文件并且我推送到我的存储库,更改也不会应用于GitHub远程.不知何故,此文件夹被忽略.我检查过它不在.gitignore文件中.
在尝试删除我使用的子项目时:
git submodule deinit submodule-name
Run Code Online (Sandbox Code Playgroud)
但它给出了错误
错误:pathspec'submodule-name'与git已知的任何文件都不匹配.你忘了'git add'吗?
这是什么问题?
为什么git://有效
$ git clone git://github.com/schacon/grit.git
Cloning into 'grit'...
...
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)
但是git @没有
$ git clone git@github.com:schacon/grit.git mygrit
Cloning into 'mygrit'...
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to t
he list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏
我正在尝试使用--track或跟踪退出分支到远程分支--set-upstream-to,但得到以下错误
$ git branch --track master origin/master
fatal: A branch named 'master' already exists.
$ git branch --set-upstream-to master origin/master
fatal: branch 'origin/master' does not exist
Run Code Online (Sandbox Code Playgroud)
我检查了SourceTree并发现它使用了--set-upstream,但得到了以下警告
$ git branch --set-upstream master origin/master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
Branch master set up to track remote branch master from origin.
Run Code Online (Sandbox Code Playgroud)
双方--track并--set-upstream-to没有工作,我失去的东西吗?
我认为他们应该基本相同,但是当我尝试时
$ git stash show -p stash@{N}
Run Code Online (Sandbox Code Playgroud)
和
$ git show stash@{N}
Run Code Online (Sandbox Code Playgroud)
后者显示了一些额外的提交信息,但实际的差异要短得多.(前者显示了大约十二个文件,但后者只有一个.)
那么,两者之间究竟有什么区别,为什么它们不同?
我还可以依赖于git diff stash@{M} stash@{N}正确的事情吗?
我有一大堆可怕的代码,我在版本控制中进行设置.
我想要一个可以在Linux上运行的命令,以便为我提供在运行时提交和推送的文件的总大小 git add -A && git commit -am 'initial commit'
需要总大小,按文件夹分解也很方便.
然后我将使用它来构建我的忽略,以便在我推升之前我可以将repo变为现实大小
我需要在GitHub for Windows应用程序中做些什么才能及时了解对GitHub上托管的项目或存储库所做的更改?
我很可能不会编辑,但确实想要了解并合并对项目所做的更改.
当我在桌面上克隆时,使用GitHub for Windows GUI,我有一个选项是"同步分支",它被定义为"在服务器上共享你的本地提交并从其他人那里下拉变化".我与谁分享我的本地提交?它是起源吗?而且,我的变化是"拉下来"?
看起来GUI中的"同步分支"选项可以同时执行(无论我是否愿意).
我最近开始使用Git/SourceTree/Bitbucket.我可以安全地将本地Git存储库移动到我的硬盘中的其他位置吗?
因为Git忽略了一些大文件,所以我无法从远程存储库中获取存储库以获取所有文件的精确副本.
如果我只是将包含.git的主目录移动或复制到其他地方,是否会导致Git乱七八糟?如果绝对路径对Git很重要,我猜它会,但我不确定.
Fugitive.vim允许我运行git grep命令; 不幸的是,结果没有存储在quickfix-list中,所以我需要:cw在a之后运行:Ggrep才能拥有一个易于解析的结果列表.
我想键入:Ggr "def my_function"而不是:
:Ggrep "def my_function"
:cw
Run Code Online (Sandbox Code Playgroud)
如何:Ggr在.vimrc文件中定义此命令?
编辑
一旦:Ggr定义了命令,我就可以映射到git grep光标下的单词,这真的很棒:
nnoremap <C-F> :Ggr <cword><CR>
Run Code Online (Sandbox Code Playgroud)