git的使用方法,如何配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git的使用方法,如何配置相关的知识,希望对你有一定的参考价值。
参考技术A 使用git 自从git-1.5.4 , 'git-xyz' 这种用法就不提倡了,而推荐 'git xyz' 风格。 git 的后续版本中将在 make install 时不再安装 'git-xyz' 这些 hardlinks 。 当如果执行 git --exec-path 输出的目录中依然有 git-xyz 这些脚本,你还是可以把这个路径加到 PATH 环境变量中, 这样还能够使用 git-xyz 形式的脚本。 config ------ 我的一些简单的配置: $ git-config user.name "Jike Song" $ git-config user.email [email]albcamus@gmail.com[/email] $ git-config core.editor vim $ git-config core.pager "less -N" $ git-config color.diff true // 显示 diff 时色彩高亮 $ git-config alias.co checkout // 给 git checkout 取个别名,这样只输入 git co 即可 $ git-config sendemail.smtpserver /usr/bin/msmtp 注意,这会在当前 repository 目录下的 .git/config 中写入配置信息。 如果 git-config 加了 --global 选项,配置信息就会写入到 ~/.gitconfig 文件中。 因为你可能用不同的身份参与不同的项目,而多个 项目都用 git 管理,所以建议不用 --global 配置。 $ git-val -l // 列出 git 变量 init ---- $ git-init-db // 创建一个 .git/ 目录,初始化一个空的 git 仓库 //这个目录在git-clone时也会创建。也就是说clone时会自动初始化git //仓库里需要的东西 clone ----- $ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git [dir name] [dir name] 是你想让这个仓库叫什么名字。 如果不指定,就会等同于目标仓库的名字。 注意,这种 git server 形式的 repository ,都有一个 filename.git 文件; 而对于 *.git 的操作,也可以 针对.git 所在的目录: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通过 ssh : $ git-clone [email]arc@host.xyz.com[/email]:/home/arc/Sources/linux-2.6 此时当前目录下有一个 .git/ 目录 . 以下我们都在 linux-2.6/ 下演示: 使用git 自从git-1.5.4 , 'git-xyz' 这种用法就不提倡了,而推荐 'git xyz' 风格。 git 的后续版本中将在 make install 时不再安装 'git-xyz' 这些 hardlinks 。 当如果执行 git --exec-path 输出的目录中依然有 git-xyz 这些脚本,你还是可以把这个路径加到 PATH 环境变量中, 这样还能够使用 git-xyz 形式的脚本。 config ------ 我的一些简单的配置: $ git-config user.name "Jike Song" $ git-config user.email [email]albcamus@gmail.com[/email] $ git-config core.editor vim $ git-config core.pager "less -N" $ git-config color.diff true // 显示 diff 时色彩高亮 $ git-config alias.co checkout // 给 git checkout 取个别名,这样只输入 git co 即可 $ git-config sendemail.smtpserver /usr/bin/msmtp 注意,这会在当前 repository 目录下的 .git/config 中写入配置信息。 如果 git-config 加了 --global 选项,配置信息就会写入到 ~/.gitconfig 文件中。 因为你可能用不同的身份参与不同的项目,而多个 项目都用 git 管理,所以建议不用 --global 配置。 $ git-val -l // 列出 git 变量 init ---- $ git-init-db // 创建一个 .git/ 目录,初始化一个空的 git 仓库 //这个目录在git-clone时也会创建。也就是说clone时会自动初始化git //仓库里需要的东西 clone ----- $ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git [dir name] [dir name] 是你想让这个仓库叫什么名字。 如果不指定,就会等同于目标仓库的名字。 注意,这种 git server 形式的 repository ,都有一个 filename.git 文件; 而对于 *.git 的操作,也可以 针对.git 所在的目录: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通过 ssh : $ git-clone [email]arc@host.xyz.com[/email]:/home/arc/Sources/linux-2.6 此时当前目录下有一个 .git/ 目录 . 以下我们都在 linux-2.6/ 下演示: pull ---- $ git-pull // 更新本地的 git tree 。 如果自从你 clone 了 linus tree 之后, linus tree //有新的改动,那么把这些更改更新到你的本地tree中 //类似于cvs update pull ---- FYI: git-clone 和 git-pull 都会默认调用 git-merge 。 FYI: 每天 git-pull 更新技巧: 1) git-describe ,例如目前是 v2.6.26-rc8-12 2) git-pull -v 3) git-describe ,例如是 v2.6.26-rc8-22 4) git-log -p -10 查看变化 diff ---- $ git-diff /* 列出自己本地的 tree 中已修改、但却未 commit 的改动 这也是产生 patch 的方式 ( 用来提交的 patch 需要先 commit 到自己的 tree 里, 然后git-format-patch) 。 注意,使用 git-diff 产生的 patch 都应该在 patch(1) 时指定 -p1 ,或者直接使用 git-apply 打补丁 */ 选项: --color diff 语法高亮 ( 可以 git-config color.diff true) --ignore-space-at-eol 忽略行尾的 whitespace -b --ignore-space-change 忽略行尾的 whitespace ,并且认为所有的 whitespace 都是一样的 -w --ignore-all-space 比较两行的时候,完全忽略 whitespace 。这样,即使是一行有很多 whitespaces ,另一行文字一样但是没有 whitespace , git 也认为这两 行内容一致。 $ git-pull // 更新本地的 git tree 。本回答被提问者采纳如何显示我的全局 Git 配置?
【中文标题】如何显示我的全局 Git 配置?【英文标题】:How do I show my global Git configuration? 【发布时间】:2012-08-28 13:23:15 【问题描述】:我想显示所有已配置的 Git 部分。
我只找到git config --get core.editor
,我想输出全局配置的所有内容,而不仅仅是配置的默认编辑器。
【问题讨论】:
查看.gitconfig有什么问题? 请注意,您将很快(2015 年第三季度/第四季度)使用 git 2.6 选项--name-only
,仅列出配置键,而不列出它们的值。见my answer below
$ git config --list
Checking-Your-Settings
它应该是git config --global --list
,正如在here中更深入地解释的那样
【参考方案1】:
你可以使用:
git config --list
或查看您的~/.gitconfig
文件。本地配置将在您的存储库的 .git/config
文件中。
用途:
git config --list --show-origin
查看该设置的定义位置(全局、用户、repo 等...)
【讨论】:
谢谢,我赞成你们俩。我想知道git config --list
命令,因为我可以查看存储库中的有效配置,并且可以使用适当的参数(--global
、--local
、--system
)来区分本地、全局和系统配置。我会尽快接受你的回答,因为你快了几秒钟:)
小心,有很多潜在的 git 配置来源。查看文件只给出了一部分。 @linquize 的回答其实是正确的。
@vonbrand: --list 等价于 -l。
当您成为高级用户并经常使用该功能时,速记(如-l
)会派上用场,实际上可以从输入更少的字符中获益。我发现更容易找到并记住长 --list
选项。对于不太明显的速记,我经常需要检查它们代表什么,所以我更喜欢长名称。当您不必键入所有字符但仍能看到整个选项名称时,它们会更容易,通过命令完成。
如果git config --list
什么都不打印怎么办?【参考方案2】:
git config --list
是一种方法。不过我通常只是打开.gitconfig
。
【讨论】:
您是否打算使用~/.gitconfig
或git help config
的文件部分中提到的其他文件之一?
@chwarr - 对不起,我不明白。我“有意”吗?
我想你的意思是说“我通常只是打开~/.gitconfig
。”,因为无论你在哪里,git 都不会在当前目录中寻找.gitconfig
。 (.gitconfig
和 ~/.gitconfig
命名不同的文件 [通常]。)git help config
中提到的其他文件具有不同的文件名,因此假设。【参考方案3】:
最短的,
git config -l
显示所有继承自:系统、全局和本地的值
【讨论】:
这与 git config --list 有什么不同,还是只是更短的写法? @Magnilex 这只是一种更短的编写方式 配置文件可能并不总是显示所有继承的配置,但git config -l
会显示所有内容。救了我,因为 git for windows 在安装时设置了autocrlf
,而且它不在我能找到的任何配置文件中。
是的,还有 C:\ProgramData\Git\config 文件——我猜这是全局或系统 git 配置文件【参考方案4】:
您也可以使用cat ~/.gitconfig
。
【讨论】:
【参考方案5】:Git 2.6(2015 年 9 月/10 月)将添加选项 --name-only
以简化 git config -l
的输出:
参见commit a92330d、commit f225987、commit 9f1429d(2015 年 8 月 20 日)Jeff King (peff
)。
请参阅commit ebca2d4(2015 年 8 月 20 日)和 commit 905f203、commit 578625f(2015 年 8 月 10 日)SZEDER Gábor (szeder
)。(由 Junio C Hamano -- gitster
-- 合并到 commit fc9dfda,2015 年 8 月 31 日)
config
:添加“--name-only
”选项以仅列出变量名称'
git config
' 只能显示值或名称-值对,所以如果一个 shell 脚本需要设置配置变量的名称,它必须运行“git config --list
”或“--get-regexp
”并解析输出以将配置变量名称与其值分开。 但是,这样的解析无法处理多行值。虽然 '
git config
' 可以为换行安全解析生成以空字符结尾的输出,但在这种情况下没有用,因为 shell 无法处理空字符。即使是我们自己的 bash 完成脚本也会遇到这些问题。
通过引入帮助完成脚本和一般的 shell 脚本 '
--name-only
' 选项修改'--list
' 的输出和 '--get-regexp
' 仅列出配置变量的名称,因此它们不会 必须执行容易出错的后处理来分隔变量名 不再是他们的价值观了。
【讨论】:
【参考方案6】:在基于 Linux 的系统上,您可以通过以下方式查看/编辑配置文件
vi/vim/nano .git/config
确保您位于 Git init 文件夹中。
如果您想使用--global config
,它是
vi/vim/nano .gitconfig
在 /home/userName
这应该有助于编辑:https://help.github.com/categories/setup/
【讨论】:
【参考方案7】:您也可以调用git config -e
直接在您的编辑器中打开配置文件。 Git 配置文件比-l
输出更具可读性,所以我总是倾向于使用-e
标志。
总结一下:
git config -l # List Git configuration settings (same as --list)
git config -e # Opens Git configuration in the default editor (same as --edit)
没有参数,它与本地.git/config
交互。
使用--global
,它与~/.gitconfig
交互。
与--system
交互,它与$(prefix)/etc/gitconfig
交互。
(我真的找不到$(prefix)
的含义,但它似乎默认为$HOME
。)
【讨论】:
【参考方案8】:如果你只想列出 Git 配置的一部分,例如 alias、core、remote 等,你可以只需通过 grep 管道传输结果。比如:
git config --global -l | grep core
【讨论】:
【参考方案9】:如何编辑我的全局 Git 配置?
简答:git config --edit --global
要了解 Git 配置,你应该知道:
Git 配置变量可以存储在三个不同的级别。每个级别都会覆盖上一个级别的值。
1.系统级别(适用于系统上的每个用户及其所有存储库)
查看,git config --list --system
(可能需要sudo
)
设置,git config --system color.ui true
编辑系统配置文件,git config --edit --system
2。全局级别(特定于您个人的值,即用户)。
查看,git config --list --global
设置,git config --global user.name xyz
编辑全局配置文件,git config --edit --global
3.存储库级别(特定于该单个存储库)
查看,git config --list --local
设置,git config --local core.ignorecase true
(--local
可选)
编辑存储库配置文件,git config --edit --local
(--local
可选)
运行如何查看所有设置?
git config --list
,显示 system、global 和(如果在存储库中)local 配置
运行git config --list --show-origin
,也会显示每个配置项的源文件
例如,运行如何读取一个特定的配置?
git config user.name
以获取user.name
。
您还可以指定选项--system
、--global
、--local
以在特定级别读取该值。
参考:1.6 Getting Started - First-Time Git Setup
【讨论】:
git config --list
显示所有全局、系统和本地?我需要肯定:)
只是添加配置文件所在的位置:系统:C:\ProgramData\Git\config(在 Windows 中)。全局:C:\Users\user\.gitconfig (Windows) ~/.gitconfig (Linux) 本地:project-repo/.git/config
@AdiPrasetyo 是的。您可以运行git config --list --show-origin
来找出每个配置项的来源。
每次我尝试使用 git config --global --edit 命令时,我都会遇到一些疯狂的编辑器,经过一段时间的争论,我想加入一些激进组织来追查是谁制作的。所以我很抱歉,我是-1。
可以有多个特定于用户的全局配置文件。每 the docs: $XDG_CONFIG_HOME/git/config Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or empty, $HOME/.config/git/config will be used.
如果你有这个文件和 ~/.gitconfig 你可以看到它们都被视为全局文件使用:git config --list --show-origin --show-scope
【参考方案10】:
要查找所有配置,只需编写以下命令:
git config --list
我在本地运行这个命令。
Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.email=infomasud@gmail.com
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
【讨论】:
git config 命令是一个方便的函数,用于在全局或本地项目级别设置 Git 配置值。这些配置级别对应于 .gitconfig 文本文件。在这里阅读更多:atlassian.com/git/tutorials/setting-up-a-repository/git-config 太好了,您可以将其添加到您的答案中吗?【参考方案11】:关于git config
的一件重要事情:
git config
有--local
、--global
和--system
级别和对应的文件。
所以你可以使用git config --local
、git config --global
和git config --system
。
默认情况下,git config
将写入 local 级别,如果未传递任何配置选项。本地配置值存储在可以在存储库的 .git 目录中找到的文件中:.git/config
全局级别配置是特定于用户的,这意味着它适用于操作系统用户。全局配置值存储在位于用户主目录中的文件中。 ~/.gitconfig
在 Unix 系统上,C:\Users\<username>\.gitconfig
在 Windows 上。
系统级配置应用于整台机器。这涵盖了操作系统和所有存储库上的所有用户。系统级配置文件位于系统根路径之外的gitconfig
文件中。 $(prefix)/etc/gitconfig 在 Linux 系统上。
在 Windows 上,此文件可以在 C:\ProgramData\Git\config
中找到。
因此,您的选择是找到该全局 .gitconfig
文件并对其进行编辑。
或者你可以使用git config --global --list
。
这正是你所需要的。
【讨论】:
有没有办法获取这些文件的路径?我知道您已经解释了在哪里可以找到它们,但我的问题来自不同的方法。 搜索“在哪里可以找到系统、全局和本地 Git 配置文件”之类的内容,您将获得所需的内容。 ;)【参考方案12】:由于 Git 2.26.0,您可以使用--show-scope
选项:
git config --list --show-scope
示例输出:
system rebase.autosquash=true
system credential.helper=helper-selector
global core.editor='code.cmd' --wait -n
global merge.tool=kdiff3
local core.symlinks=false
local core.ignorecase=true
可以结合
--local
用于项目配置,--global
用于用户配置,--system
用于所有用户配置
--show-origin
显示确切的配置文件位置
【讨论】:
以上是关于git的使用方法,如何配置的主要内容,如果未能解决你的问题,请参考以下文章