每天一Git之创建第一个仓库并配置local用户信息
1. 新建Git仓库
1.1. 两种场景
1.1.1. 把已有的项目代码纳入Git管理
$ cd ProjectDir # 切换到项目所在的目录ProjectDir
$ git init
1.1.2. 新建的项目直接用Git管理
$ cd ProjectDir # 切换到某个文件夹(用于保存代码项目的目录)
$ git init your_project # 初始化当前目录并创建一个your_project项目同名的文件夹
$ cd your_project # 切换到刚刚建立的Git项目仓库目录
1.1.3. 演示(只演示新建项目)
[root@number ~]# mkdir GitDir
[root@number ~]# cd GitDir/
[root@number GitDir]# git init git_learning
已初始化空的 Git 仓库于 /root/GitDir/git_learning/.git/
[root@number GitDir]# ls -la
drwxr-xr-x 3 root root 4096 7月 17 18:57 git_learning
[root@number GitDir]# cd git_learning/
[root@number git_learning]# ls -la
总用量 12
drwxr-xr-x 3 root root 4096 7月 17 18:57 .
drwxr-xr-x 3 root root 4096 7月 17 18:57 ..
drwxr-xr-x 7 root root 4096 7月 17 18:57 .git
这里我们发现新建的项目仓库git_learning目录下多了一个.git的目录,这个目录是干什么用的呢?我们之后在解释,敬请期待!
2. 配置local用户信息
2.1.查看当前用户信息及global信息
[root@number git_learning]# git config --list --global
user.name=number
user.email=zz203203zhang@gmail.com
这里我们通过上面的命令显示我们global配置了用户名和邮箱等信息,现在如果我们没有针对某个仓库进行配置local用户信息,那么我们在做commit时候就会使用global配置的用户名和邮箱信息进行提交,这是可以用过git log对信息进行查看
2.2. 配置local用户信息
[root@number git_learning]# git config --local user.name 'zhangzhao'
[root@number git_learning]# git config --local user.email 'zhangzhao@goldwind.com.cn'
[root@number git_learning]# git config --list --local
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=zhangzhao
user.email=zhangzhao@goldwind.com.cn
这里我们已经将刚刚创建的Git仓库git_learning进行了local用户信息配置,并显示了配置的用户名和Email
2.3. 演示及验证
那么有的人会问了,这个local和global的用户信息配置应当如何体现呢?配置了半天完全看不到效果啊?难道只是为了git config list一下吗?
答案当然不是,在没有配置针对某个仓库的local用户信息时,我们commit代码的时候,Git会使用global配置的用户信息进行提交,提交时,如果我们配置了此仓库的local用户信息了,那么Git会使用local配置的用户信息进行提交,那么我们下面就进行实验和验证。这里我们会接触到几个新的命令,相关解释如下:
- git commit -m'Add readme' # 提交commit,并增加注释信息“Add readme”
- git add readme.md # 将readme.md文件放入unstage暂存区
- git log # 查看git commit日志
- git status # 查看目前仓库的状态
[root@number git_learning]# echo "Hello" > readme.md # 创建一个readme文件充当代码文件
[root@number git_learning]# git commit -m'Add readme' # 提交一个commit
位于分支 master
初始提交
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
readme.md
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
上面我们看到我们创建了一个readme文件来充当代码文件,然后执行了一个commit并增加了注释,大家一定要记住,一定要养成注释的好习惯,不然过几天,你连自己提交的代码改了什么你都不知道,还得使用log对文件一个一个排查,烦死你。
好了我们看到执行完commit后好像报错了,为啥呢?Git提示readme.md文件并没有放入到git仓库中进行管理,为啥呢?别急,看后面的提示“提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)”,明白了吧,人家说的很清楚,你得先git add才能建立跟踪,OK,下面我们就跟着操作一下吧。
[root@number git_learning]# git add readme.md
[root@number git_learning]# git status
位于分支 master
尚无提交
要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存)
新文件: readme.md
[root@number git_learning]# git commit -m'Add readme'
[master(根提交) 053d5d4] Add readme
1 file changed, 1 insertion(+)
create mode 100644 readme.md
[root@number git_learning]# git log
commit 053d5d4318aef8be530074efd7bda3e742f5ad84 (HEAD -> master)
Author: zhangzhao <zhangzhao@goldwind.com.cn>
Date: Fri Jul 17 19:07:57 2020 +0800
Add readme
上面我们看到,我们根据Git给我们的提示,先git add了一下,将readme文件放入到了Git仓库的暂存区,然后使用git status命令看了一下目前仓库的状态,显示有个新文件readme.md,并且还提示我们如果你想取消暂存,那么使用git rm --cached进行删除,提示,一定要想清楚了啊,否则写的代码一去不复返哦。
接下来我们再次使用git commit提交,OK成功了,并且master分支已经建立。我们再通过git log查看历史,已经看到read文件已经被git管理了。
接下来是最终要的,大家看在倒数第三行,有个Author注释,上面写着zhangzhao zhangzhao@goldwind.com.cn,怎么样,熟悉不?没错,这个就是我们在local中设置的用户信息,这里体现出来了。那么我们可以轻松的理解,如果张三提交了我们就知道是张三提交的,李四提交的我们就知道是李四提交的,显而易见,想找到谁写的烂代码一目了然,接下来就是开骂啦,吧啦吧啦XXXXXX此处省去一万个草泥马,哈哈哈