1 基本操作
本地库初始化
命令:git init
效果:在当前目录下创建 .git 文件夹。
注意:.git 目录放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
设置签名
签名是用来标识不同开发人员的身份。包括用户名和 email。要注意登录代码托管中心(远程库)的账号密码和签名没有任何关系。
命令:
git config user.name Retur0
git config user.email 384878281@qq.com
项目级别/仓库级别:仅在当前本地库范围内有效。
git config --global
系统用户级别:登录操作系统的用户范围。
优先级:项目级别优先于系统用户级别。没有项目级别则以用户级别的签名为准。
用户信息保存到了 .git/config 文件里。
系统用户级别的信息存在了用户文件夹下的 .gitconfig 文件里。~/.gitconfig
状态查看操作
命令:git status
可以查看工作区、暂存区的状态。
添加操作
命令:git add [file name]
将工作区的新建/修改添加到暂存区。
提交操作
命令:git commit -m "commit message" [file name]
将暂存区的内容提交到本地库。
显示日志/查看历史纪录
命令:
git log
参数:
- –pretty=oneline 以每条日志显示一行的形式打印日志。
- –oneline 哈希值显示一部分,更加简短。只显示到当前版本。不加参数是显示所有版本。
git reflog
显示现版本到历史版本需要移动的次数。
版本的前进后退
命令:
git reset --hard [局部索引值]
git reset --hard HEAD^^^
3个^倒退3个版本。只能后退。
git reset --hard HEAD~3
倒退三个版本。只能后退。
参数:
–soft
只在本地库移动指针。(本地库回退到某个版本)
–mixed
在本地库移动指针。(本地库回退到某个版本)
重置暂存区。(暂存区回退到某个版本)
–hard
在本地库移动指针。(本地库回退到某个版本)
重置暂存区。(暂存区回退到某个版本)
重置工作区。(工作区回退到某个版本)
删除文件并找回
删除前,文件需要被提交到过本地库。
命令:git reset --hard [局部索引值]
比较文件差异
命令:
git diff [文件名]
将工作区中的文件和暂存区中进行比较。git diff [本地库中的历史版本] [文件名]
将工作区中的文件和某个历史版本进行比较。
2 分支管理
在版本控制过程中,使用多条线同时推进多个任务。提高开发效率。在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。
2.1 分支操作:
创建分支
git branch [分支名]
查看分支
git branch -v
切换分支
git checkout [分支名]
合并分支:必须切换到接受修改的分支上。
git merge [有新内容的分支]
2.2 解决合并时产生的冲突
如果两分支同一文件的同一行不同,则会产生冲突。此时需要手动解决冲突。
冲突后文件如下:
9 <<<<<<< HEAD
10 hhhhhhhhhhhh edit by hot_fix
11 =======
12 hhhhhhhhhhhh edit by master
13 >>>>>>> master
HEAD到=======是当前分支的内容,=======下面是合并进来分支的内容。删除重复的,保留需要的。
之后使用git add [文件名]
提交修改好的文件。
使用git commit -m "日志信息"
结束 merging 状态。这里不可以带文件名。