Git日常管理


Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

在执行完成 git init命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN会在每个子目录生成 .svn目录,Git 只在仓库的根目录生成 .git 目录)。

[root@Git ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history .bash_logout  .bash_profile  .bashrc .cshrc  .pki  .tcshrc .viminfo
[root@Git ~]# git init   ##初始化(新建)git使用当前目录作为Git仓库,我们只需使它初始化。
Initialized empty Git repository in /root/.git/
[root@Git ~]# ls -a      #查看,git为隐藏文件
.  ..  anaconda-ks.cfg  .bash_history .bash_logout  .bash_profile  .bashrc .cshrc .git  .pki .tcshrc  .viminfo
[root@Git ~]# cd .git/
[root@Git .git]# ls  
branches config  description  HEAD hooks  info  objects refs
 
如果使用我们指定目录作为Git仓库。
[root@Git ~]# git init newrepo
初始化后,会在 newrepo 目录下会出现一个名为.git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
[root@Git ~]# git add *.c
[root@Git ~]# git add README
[root@Git ~]#  git commit -m '初始化项目版本'
以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。

[root@Git .git]# tree
.
├── branches                             #项目分支信息
├── config                               #Git项目配置信息
├── description                          #Git项目描述信息
├── HEAD                                 #指向当前分支的末端
├── hooks                                #默认的hooks脚本,由特定事件触发
│   ├──applypatch-msg.sample
│   ├──commit-msg.sample
│   ├──post-update.sample
│   ├──pre-applypatch.sample
│   ├──pre-commit.sample
│   ├──prepare-commit-msg.sample
│   ├──pre-push.sample
│   ├──pre-rebase.sample
│   └──update.sample
├── info                                 #内有exclude文件:指定git要忽略的文件
│   └── exclude
├── objects                              #Git数据对象:commit、tree、blob、tag
│   ├── info
│   └── pack
└── refs                                 #Git引用:指向(远程)分支、标签的指针
    ├── heads
    └── tags
 
9 directories, 13 files
 



[root@Git .git]# tree

.

├── branches                             #项目分支信息

├── config                               #Git项目配置信息

├── description                          #Git项目描述信息

├── HEAD                                 #指向当前分支的末端

├── hooks                                #默认的hooks脚本,由特定事件触发

│   ├──applypatch-msg.sample

│   ├──commit-msg.sample

│   ├──post-update.sample

│   ├──pre-applypatch.sample

│   ├──pre-commit.sample

│   ├──prepare-commit-msg.sample

│   ├──pre-push.sample

│   ├──pre-rebase.sample

│   └──update.sample

├── info                                 #内有exclude文件:指定git要忽略的文件

│   └── exclude

├── objects                              #Git数据对象:commit、tree、blob、tag

│   ├── info

│   └── pack

└── refs                                 #Git引用:指向(远程)分支、标签的指针

    ├── heads

    └── tags

 

9 directories, 13 files

 

 

1.3 设置名字

[root@Git .git]# git config --global user.name"syaving"

1.4 设置邮箱

[root@Git .git]# git config --global user.email"[email protected]"

1.5 设置差异颜色显示

[root@Git .git]# git config --global color.ui true

1.6 设置别名

[root@Git .git]# git config --global alias.it init

[root@Git .git]# git config --global alias.olog"log --pretty=oneline"

[root@Git .git]# git olog

e435fe88da4d214f5256130e720b1faf21f0f011 add readme

2525062715ac09c1da5d5e5b8d2294200d33e791 add readme

1.7 参数选项:

  --global:修改全局配置文件,去配置~/.gitconfig

用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。

  --system:修改所有用户的配置文件:/etc/gitconfig

系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。

  无参数:修改本仓库配置文件: .git/config

这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

1.8 设置自动补全功能

[root@Git ~]# pwd

/root

[root@Git ~]# rz ## 上传git-bash-completion-master.zip

 

[root@Git ~]# ls

anaconda-ks.cfg git  git-bash-completion-master.zip

[root@Git ~]# unzipgit-bash-completion-master.zip  ##解压git-bash-completion-master.zip

Archive: git-bash-completion-master.zip

d1d25024c4a68f7724a1876598664f13c01aac19

   creating:git-bash-completion-master/

  inflating:git-bash-completion-master/README.markdown 

  inflating:git-bash-completion-master/git-completion.bash 

[root@Git ~]# ls

anaconda-ks.cfg git git-bash-completion-master git-bash-completion-master.zip

[root@Git ~]# cd git

[root@Git git]# cd ..

[root@Git ~]# cd git-bash-completion-master/

[root@Git git-bash-completion-master]# ls

git-completion.bash README.markdown

[root@Git git-bash-completion-master]# mvgit-completion.bash ..

[root@Git git-bash-completion-master]# ls

README.markdown

[root@Git git-bash-completion-master]# cd ..

[root@Git ~]# ls

anaconda-ks.cfg git-bash-completion-master     git-completion.bash

git             git-bash-completion-master.zip

[root@Git ~]# rm -rf git-bash-completion-master*

[root@Git ~]# ls

anaconda-ks.cfg git  git-completion.bash

[root@Git ~]# source ~/git-completion.bash  #

[root@Git ~]# echo source ~/git-completion.bash>> ~/.bashrc  ##加入环境变量

[root@Git ~]# source ~/.bashrc  ##

 

1.9 文本编辑器

设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置::

 

[root@Git .git]# git config --global core.editoremacs

 

1.10 差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:

[root@Git .git]# git config --global merge.toolvimdiff

Git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息。

 

1.11 查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

[root@Git .git]# git config --list

user.name=syaving

[email protected]

color.ui=true

alias.it=init

alias.olog=log --pretty=oneline

core.editor=emacs

merge.tool=vimdiff

core.repositoryformatversion=0

core.filemode=true

core.bare=false

core.logallrefupdates=true

 

有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig ~/.gitconfig),不过最终 Git实际采用的是最后一个。

这些配置我们也可以在 ~/.gitconfig /etc/gitconfig看到,如下所示:

vim ~/.gitconfig

显示内容如下所示:

[http]

    postBuffer = 2M

[user]

    name= syaving

    email = [email protected]

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

# git config user.name

"syaving"

 

!!!以上一段,为网上收集信息,没看明白。。


你可能感兴趣的:(自动化运维,Git)