我怎么能使用"git config"命令来实现这样的配置:
[diff "odf"]
textconv=odt2txt
Run Code Online (Sandbox Code Playgroud) 我想知道[核心]做了什么,以及如何设置它.我发现我的主目录中的.gitconfig文件是这样的:
[core]
autocrlf = input
safecrlf = true
[user]
name =
email =
Run Code Online (Sandbox Code Playgroud)
在另一个主目录中,它看起来像这样:
[user]
name =
email =
[core]
excludesfile = /Users/chenfl84/.gitignore_global
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
Run Code Online (Sandbox Code Playgroud) 我创建了一个 git 命令来显示 HEAD 和最后一次 Git-SVN 提交之间的差异。
Git 是命令
git diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD
Run Code Online (Sandbox Code Playgroud)
我想为它创建一个别名,我这样做了:
git config --global alias.diffsvn 'diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD'
Run Code Online (Sandbox Code Playgroud)
但是当我运行git diffsvn并获得该命令的输出时,我得到了
致命:不明确的参数“git”:未知修订版或路径不在工作树中。使用“--”将路径与修订版分开,如下所示:“git [...] -- [...]”
我怎样才能让这个别名起作用?
如何ignore-space-change使用设置所有合并的选项git config?
我也许可以用在一个别名merge,但因为我想要的设置适用于git stash pop,git stash apply,git pull和git merge,和其他人如果有的话,我想不是建立许多别名一个更清洁的方式(我甚至不知道我是否可以成立stash子命令的别名)。
我看了看文档,但是找不到要使用的配置选项。
我在 git 中有 Moodle 项目,并且希望不断从原始 git 存储库进行更新。然而它有很多活跃的分支,我只需要其中两个。我可以在 gitconfig 文件中设置为仅获取我需要的两个分支而忽略其他分支吗?我有 gitcofig 文件的这一部分,只是不知道如何正确设置。
[remote "Moodle"]
url = git://git.moodle.org/moodle.git
fetch = +refs/heads/*:refs/remotes/Moodle/*
Run Code Online (Sandbox Code Playgroud) 按照习惯,我会经常修改我的 repo,并使用一次添加/提交它 git commit -am 'my commit message'
有时我只想添加几个修改过的文件,所以我会发出准备git add命令来精心设置我的暂存区,并将准备提交的更改与半生不熟的更改分开。
然后,我会git commit -am '...'像往常一样发出相同的命令来完成整个事情。
有没有办法让我禁用该git commit -a选项,和/或在我使用-a开关时发出警告?我想训练自己摆脱这种粗略的习惯......
我喜欢以下命令打印出git日志的方式:
git log --oneline --decorate --graph
Run Code Online (Sandbox Code Playgroud)
每当我使用git log时,我想将其设为默认格式.有没有办法编辑~/.gitconfig默认启用oneline,decorate和graph?
是的,我知道我可以将这些选项别名为另一个git命令别名,但我宁愿默认使用这些选项打印出来.
在我们的系统上,我们曾经能够将所有CRLF转换为LF,同时将文件提交到git中.现在这个功能消失了.
这就是我所做的:
git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)
完成上述操作后,我使用以下命令检查:
git config --list
Run Code Online (Sandbox Code Playgroud)
结果是:
...
core.autocrlf=input
...
core.autocrlf=false
...
Run Code Online (Sandbox Code Playgroud)
这非常令人费解.虽然有两个条目core.autocrlf,第一个是core.autocrlf=input?如果我未core.autocrlf使用:
git config --global --unset core.autocrlf
Run Code Online (Sandbox Code Playgroud)
当我列出git config时,我仍然得到一个条目:
core.autocrlf=input
Run Code Online (Sandbox Code Playgroud)
第2步:在我做完之后git config --global core.autocrlf false,我添加* text=auto到.gitattributes文件中.
但是git仍然没有为我自动转换换行符.
我曾经通过命令添加了全局提交模板:
git config --global commit.template .gitmessage.txt
Run Code Online (Sandbox Code Playgroud)
今天,我创建了自己的存储库,尝试提交时遇到错误:
致命:无法读取“ .gitmessage.txt”:没有此类文件或目录
很好,因为我没有创建.gitmessage.txt文件。我没有此仓库的模板。问题来了:如何撤消全局提交模板?我可以覆盖全局提交模板,但可以删除此配置。
我正在尝试:
git config --global commit.template ""
Run Code Online (Sandbox Code Playgroud)
但是我得到了类似的错误:
致命:无法读取'''':没有这样的文件或目录
当我运行命令
git config --global commit.template
Run Code Online (Sandbox Code Playgroud)
我得到了回声当前模板。有人可以帮助我吗?
我正在尝试推送到一个 repo 并且无法这样做,因为预接收挂钩不允许我推送,因为我的电子邮件不是某种类型。
我找不到提交者的电子邮件在哪里设置为不正确的电子邮件。在 Gitlab 上,我的个人资料包含正确的电子邮件。
在终端上,我已将电子邮件重置为正确的电子邮件,$git config user.email alisonz@xxxxxx.com并通过 确认电子邮件是正确的$git config user.email。
有没有人知道从哪里开始找到这个不正确的电子邮件设置的位置?我检查了我知道的所有配置文件,它们都包含正确的电子邮件。
感谢您提供有关从哪里开始调试的任何提示或建议。