当我尝试在Tower中设置我的用户名时,我收到此警告:
警告:user.name有多个值
我已经检查了一个终端窗口,发现我有三个用户名:
macmini:HiBye shannoga$ git config --get-all user.name
Shani
shani
shani
Run Code Online (Sandbox Code Playgroud)
如何删除两个用户名?
我能够通过我的.gitconfig中的以下配置看到我的本地和远程分支的颜色不同.
[color "branch"]
current = bold cyan
local = normal
remote = bold red
Run Code Online (Sandbox Code Playgroud)
在git branch -vv然而,存在具有不同的颜色,其是我的屏幕上显示的不可读的附加上游分支.
如何配置这种"上游"颜色?(电影双关语无意:)
A git help config列出了许多分支类型的颜色参数,但我无法找到这个上游分支的颜色参数.
可能重复:
有没有办法在一个命令中进入git根目录?
有时候,我对git认为我在Git工作目录中感到困惑,但对我来说,顶级工作目录(包含.git/)是什么并不明显.(可能这个回购是由一个错误造成的.)
那么,如果我在子目录中的某个地方,如何查找顶级Git repo目录?如何git打印它认为当前顶级工作目录的内容?
我想忽略分支中的某些文件,而不必依赖在.gitignore与其他分支合并期间将被覆盖的跟踪文件.
我一直密切关注Stack Overflow的回答以及链接的博客帖子,但我的回购似乎并没有认识到excludesfile我的指定.git/config.Git文档(git-config,gitignore)似乎没有显示如何指定和寻址特定分支的排除文件.
我.git/config看起来像这样:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
excludesfile = +/info/exclude
[branch "myspecialbranch"]
excludesfile = +/info/exclude_specialbranch
Run Code Online (Sandbox Code Playgroud)
我的.git/info/exclude文件看起来像这样(默认情况下,我没有触摸它):
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude …Run Code Online (Sandbox Code Playgroud) 通过Github我在几台不同的计算机和服务器上使用相同的"点文件".在我直接控制的Mac和Linux机器上,我安装了Sublime Text 2并设置为我的git merge和commit编辑器.但是,在远程(即不在我的直接控制下)服务器上,我会选择使用vim.
我宁愿不.gitconfig为这些远程服务器创建和维护第二个.有没有办法做这样的事情:
[core]
if [[ $IS_REMOTE -eq 1 ]]; then
editor = "vim"
else
editor = "subl -n -w"
fi
Run Code Online (Sandbox Code Playgroud)
我以某种方式根据主机名设置$ IS_REMOTE?
我刚碰到这条消息:
$ git add .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'README.md' that are
removed from your working tree are ignored with this version of Git.
* 'git add --ignore-removal <pathspec>', which is the current default,
ignores paths you removed from your working tree.
* 'git add --all <pathspec>' will let you also record the removals.
Run 'git status' to …Run Code Online (Sandbox Code Playgroud) 对我来说,典型的git工作流是克隆远程存储库并使用git pull来使其保持最新.我拉的时候不想要合并提交,所以我使用--ff-only选项.
我还为特色工作设立了本地分支机构.我想保留分支历史记录,所以当我将本地分支合并回我的本地克隆时,我使用--no-ff选项.
如何配置git默认使用这些选项?目前我的.gitconfig看起来像这样:
[merge]
ff = false
[pull]
ff = only
Run Code Online (Sandbox Code Playgroud)
但是,git pull(实际上是git fetch和git merge)似乎正在拾取合并选项,因此创建了合并.
假设我的.gitconfig中有一个这样的别名:
alias.showlog = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
Run Code Online (Sandbox Code Playgroud)
现在我想要一个类似的别名:
alias.sl = showlog --abbrev-commit
Run Code Online (Sandbox Code Playgroud)
当我尝试命令时,git sl它说他不知道showlog命令.
我知道仍然可以像其他别名一样复制相同的命令,但我只是想知道是否有可能在别名中引用另一个别名?
我有两个相关的问题:
我知道有一个系统,全局和本地(aka项目).gitconfig文件.而且,根据Git网站,这些"级别"(系统,全局,本地)中的每一个都会覆盖前一级别的值,因此./git/config(本地)中的值会胜过其中的值/etc/gitconfig.
换句话说,我们正在处理层次结构,本地配置文件中的任何声明将优先于全局或系统配置文件中的一个声明.
但是,如果设置存在中说,全球文件(比如代理),并没有出现在本地文件确实是设置,然后使用代理从全局设置?这意味着在应用层次结构规则之前,Git可以处理所有配置文件中的所有设置.
然后,在上面的例子中,如果代理从全局设置中被连同我的本地配置文件中的其他设置使用我怎么可以重写呢?
Git push被拒绝,并显示以下错误消息:
expected committer email '' but found 'karan@xyz.com'
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了:
但没有一个有效.我还能做些什么来解决它.
git ×10
git-config ×10
alias ×2
colors ×1
commit ×1
directory ×1
find ×1
git-commands ×1
git-commit ×1
git-merge ×1
git-pull ×1
gitignore ×1