1. Git常用命令
作用 | 命令名称 |
---|
设置用户签名 | git config --global user.name 用户名 | 设置用户签名 | git config --global user.name 邮箱 | 初始化本地库 | git init | 查看本地库状态 | git status | 添加到暂存区 | git add 文件名 | 提交到本地库 | git commit -m “日志信息” 文件名 | 查看历史记录 | git reflog | 版本穿梭 | git reset --hard 版本号 |
1.1 设置用户签名
设置用户名
git config --global user.name cy
设置用户邮箱(可以是虚拟邮箱)
git config --global user.email cy@qq.com
设置完成后可以再系统盘的用户目录下查看 用记事本打开“.gitconfig”可以看到用户名和邮箱已经配置成功  首次安装Git一定要设置用户签名,否则无法提交代码 这里设置的用户签名与将来登录GitHub或者其他代码托管中心的账号没有任何关系,只是属于本地的Git客户端。
1.2 初始化本地库
git init
 Git本地库初始化成功!
1.3 查看本地库状态
git status
运行结果:
// 当前所属分支默认分支为(master)
On branch master
// 目前没有提交过任何东西(空库)
No commits yet
// 没有任何东西可以提交
nothing to commit (create/copy files and use "git add" to track)
添加文件
vim hello.txt
在使用查看本地库状态:  但是查看状态时,hello.txt为红色 表明该文件只存在于工作区,Git还从来没有追踪过这个文件,需要使用Git add命令将文件添加到暂存区
1.4 添加到暂存区
git add hello.txt
使用后再使用git status 查看仓库状态  可以观察到文件变绿色,文件已存在于暂存区内,同时存在于暂存区内的文件是可以进行删除的,并且不留痕迹,使用如下代码进行操作:
git rm --cached <file>
使用这个方法删除,只是将暂存区中的文件进行删除,但是本地库中的文件还是存在的,仍然存在于本地中。
1.5 提交到本地库
基本语法
git commit -m "日志信息" 文件名

$ git status
On branch master
nothing to commit, working tree clean
通过命令查看版本日志信息可以观察到已经有一个人日志信息:
git reflog

1.6 修改文件信息
- 使用vim修改文件信息
- 使用git status查看库内容,发现文件变红,需要重新添加到缓存区
- 使用“git add 文件名”将修改后的文件添加到缓存区,文件变绿色
- 再使用“git commit -m “日志信息” 文件名” 提交到本地库
具体操作如下所示:  
1.7 查看历史版本信息
git log
git reflog

1.7 版本穿梭
git reset --hard 版本号
这里的版本号可以使用查看历史版本指令完成: 
 在完成版本穿梭之后还可以使用git reflog 操作查看到穿梭信息,同时也可以看到head指向的master指针也指向了第一次的版本“commit test” 
2. Git分支操作
命令名称 | 作用 |
---|
git branch 分支名 | 创建分支 | git branch -v | 查看分支 | git checkout 分支名 | 切换分支 | git merge 分支名 | 把指定的分支合并到当前分支上 |
2.1 创建分支
git branch 分支名
创建一个热修分支(例如开发过程中需要紧急修复的情况下,创建一个热修分支来进行修复,并不影响其他分支的运行)  但是通过 git branch -v 命令发现仍然处于master分支上 可以使用 git checkout hot-fix 命令将分支切换到其他分支上,并使用查看分支命令,可以观察到确实处于新的分支hot-fix上,如下图所示:  我们在热修分支上修改的文件并不会对master分支上有影响,可以使用git checkout master命令切换回主分支,可以观察到文件并没有被更改:   当然也可以对不同的分支进行合并。
2.1 分支的合并
普通合并
可以同时并行推进多个功能的开发,提高开发效率。
git merge 分支名

冲突合并
产生冲突的原因:合并分支时,两个分支在同一个文件的同一个位置发生了两个不同的修改。Git无法决定是用哪一个,就必须认为决定使用新代码的内容。 例如:使用master分支和hot-fix分支分别对hello.txt文件进行修改:   然后在master中对hot-fix使用merge命令进行合并,会出现报错,并且可以观察到下一行的分支出现变化,显示正在合并中  可以使用vim命令对你需要的代码进行修改选择,然后重新提交。  但是提交的时候不能带文件名,因为现在正处于合并中,两个分支中的文件都被修改了,所以不能带文件名。并且可以观察到已经不显示合并中,而是显示主分支。  但是也只会修改所在的分支 并不会修改被合并的分支,例如我们在切换到hot-fix分支可以看到文件并没有被修改: 
|