git安装可以参考其他安装教程
在git bash中时可以使用linux命令的,因为linux和git都是同一个人开发的
Git 常用命令
| 命令名称 | 作用 |
|---|---|
| git config –global user.name xxx | 设置用户签名 |
| git config –global user.email xxx@xx.com | 设置用户邮箱,虚拟邮箱,可任意设置,无验证 |
| git init | 初始化本地库 |
| git status | 查看本地库状态 |
| git add xxx | 添加暂存区 |
| git rm –cached xxx | 从暂存区中删除 |
| git commit -m “日志信息” xxx | 提交本地库 |
| git reflog | 查看简洁日志 |
| git log | 查看详细日志 |
| git reset –hard 版本号 | 版本穿梭 |
1 设置用户签名
- 在git bash中使用以下命令
1 | git config --global user.name xxx //设置用户签名 |
打开C盘-用户-(对应用户目录下)-.gitconfig中可以查看和更改以上信息
2 初始化本地库
- 创建一个文件夹,进入该文件夹,打开git bash,输入以下命令
1 | git init |
命令执行后,会生成一个隐藏文件夹.git,这个文件夹不要更改
3 查看本地库状态
- 同样在git bash中输入以下命令
1 | git status |
第一次查看本地库状态时,会显示
1 | On branch master //在master分支中 |
在当前目录下,新增一个文件之后,再次查看本地库状态
1 | On branch master |
最后一行,红色字体表示该文件目前只存在与工作区,git还没有追踪过这个文件,需要使用git add将此文件存到暂存区中。添加之后就会变成绿色字体
4 添加暂存区
将工作区的文件提交到暂存区命令:
1 | git add xxx |
添加时如果提示warning:LF will be replaced by CRLF ,因为LF时Linux中的换行符,CRLF时Windows的换行符,如果你是使用vim创建的文件,那就是以LF作为换行符。在当初安装git时,就选择了换行符自动转换的配置,所以此处的warning不用管
一旦文件进行修改,在查看本地库状态商家,modified: hello.txt(文件)就会是红色字体,就需要重新将其添加到暂存区,才会变成绿色字体
如果不想要文件了,可以将其从暂存区中删除
1 | git rm --cached xxx |
5 提交本地库
将暂存区的文件提交到本地库
1 | git commit -m "日志信息" xxx |
- 查看日志信息
1 | git reflog //查看简洁日志 |
1 | $ git reflog |
其中0078f5e为版本号
6 版本穿梭
1 | git reset --hard 版本号 |
1 | //当前的HEAD指向第三个版本 |
在.git-refs-heads-master中可以看到当前所属的版本号
git切换版本,底层其实是移动的HEAD指针,而不是使用副本
Git分支操作
分支:在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
分支的好处:可以同时并行推进多个功能开发,提高开发效率
| 命令名称 | 作用 |
|---|---|
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 把指定的分支合并到当前分支上 |
1 查看分支
1 | $ git branch -v |
2 创建分支
1 | git branch 分支名 |
3 修改分支
1 | git checkout 分支名 |
4 合并分支
1 | git merge 分支名 |
5 冲突合并
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
当进行强制合并时,git不知道如何合并,所以会显示合并不成功,查看状态可以看到未合并成功的文件,打开会看到如下显示

HEAD和=====之间的是当前的,=====和>>>>>>之间的是被合并的分支中文件的内容
那么就采取人为的将所有提示词以及其余部分删除,只留下含有master test和hot-fix test所在行,然后保存并退出文件。然后需要将文件重新上传到暂存区,并提交本地库,此时命令不能带文件名,否则会报错
1 | git commit -m "merge test" //不能有文件名 |
合并之后,只有master中的文件内容会改变,hot-fix分支的文件内容不变
GitHub操作
1 创建远程仓库别名
1 | git remote add 别名 https://github,com/xxxx/xxxx.git(远程仓库地址) |
2 推送本地分支到远程仓库
1 | git push 别名 分支 |
3 拉取远程仓库代码
1 | git pull 别名 分支 |
4 克隆远程仓库到本地
1 | git clone 远程地址 |
克隆会做如下操作
- 拉取代码
- 初始化本地仓库
- 创建别名
5 ssh免密登录
- 进入用户目录下的.ssh文件夹中输入以下命令,生成一对公私钥
1 | ssh-keygen -t rsa -C "xxx@xxx.com" //此邮箱仅作标识 |
- 进入github的个人页面的SSH and GPG keys页面中,新增一个公钥,将刚生成的公钥的(pub)内容拷贝到其中,在下次pull或者push的时候用ssh的链接就可以操作
1 | git pull/push git@github.com:xxx/xxx.git |
在push文件之前,还是要把修改的文件添加到暂存区以及本地库之后才能push到远程库
IDEA集成GitHub
1 配置git忽略文件
作用:忽略与项目的实际功能无关,不参与服务器上部署运行的文件。把它们忽略掉能够屏蔽IDE工具之
间的差异。
方法:创建忽略规则文件xxxx.ignore(前缀名随便起,建议是git.ignore),这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下
(1)git.ignore文件的模板内容:写入所有不需要文件的后缀
1 | # Compiled class file |
(2)在.gitconfig文件中引用忽略配置文件(此文件在Windows的家目录中)
1 | [user] |