Git常用命令总结(IDEA版、eclipse版、Termina
IDEA版
环境准备
1.Git官网下载安装git https://git-scm.com/download/win
![](https://img.haomeiwen.com/i8020666/d98f7d901d1d3c52.png)
2.idea中配置git路径
setting→version control → git
![](https://img.haomeiwen.com/i8020666/7eb18453c5b414f1.png)
3.在git仓库(github、码云、gitlab等)上创建一个项目,我这里以gitlab为例
![](https://img.haomeiwen.com/i8020666/0fb4dfe6d79b2d21.png)
4.idea从gitlab上检出项目
![](https://img.haomeiwen.com/i8020666/ce4b661bc6a17d04.png)
![](https://img.haomeiwen.com/i8020666/549c1d6947989ee6.png)
![](https://img.haomeiwen.com/i8020666/9dc5001391957adb.png)
输入gitlab的账户进行登录
![](https://img.haomeiwen.com/i8020666/cd6eca48cc33d78f.png)
5.注意选择no因为还没上传初始化项目
![](https://img.haomeiwen.com/i8020666/8f71c431b92f51d3.png)
6.idea在git_test目录下创建springboot项目
![](https://img.haomeiwen.com/i8020666/1b69df262ca7706e.png)
7.右键项目,添加所有修改到暂存区
![](https://img.haomeiwen.com/i8020666/78d8be6f1eb7db31.png)
8.提交改变到本地仓库
![](https://img.haomeiwen.com/i8020666/7858474def4da891.png)
![](https://img.haomeiwen.com/i8020666/0dcb69e3fd0960b1.png)
9.右键项目,push到远程gitlab仓库
![](https://img.haomeiwen.com/i8020666/8f4323fcd6ec6bfa.png)
![](https://img.haomeiwen.com/i8020666/38feb1ec1278ce78.png)
10.到gitlab上发现已经推送到远程仓库
![](https://img.haomeiwen.com/i8020666/5f472b529f43e76a.png)
11.直接在远程master做出更改然后拉取更新到本地
![](https://img.haomeiwen.com/i8020666/63086e050b23902c.png)
![](https://img.haomeiwen.com/i8020666/b838cdb51f5402ac.png)
![](https://img.haomeiwen.com/i8020666/efc33418d57750b8.png)
![](https://img.haomeiwen.com/i8020666/f7aa11e5965c6cfc.png)
12.代码出现冲突怎么解决?
- 首先同事提交修改README.md文件到远程主分支
![](https://img.haomeiwen.com/i8020666/bc89a5164f8256a0.png)
-
然后我在本地也修改README.md文件
image.png
-
提交修改到本地仓库,注意提交之前应先把代码添加到暂存区,因为这里idea自动帮我加入了暂存区,所以就不用添加了,可以项目树是红色代表没添加暂存区,蓝色代表添加暂存区未提交,白色代表已提交到本地仓库,黄色是.gitignore规定不用提交的文件。
image.png
-
拉取远程仓库代码到本地仓库合并,因为本地也修改并提交了README.md文件,所以冲突就产生了。
image.png
image.png
image.png
![](https://img.haomeiwen.com/i8020666/f660902014e72854.png)
- 在本地仓库解决冲突合并之后,就可以推送push到远程分支了。
13.在本地创建分支并推送到远程gitlab仓库
-
右键项目选择分支
image.png
-
新建分支
image.png
-
新分支为开发分支 dev
image.png
-
看右下角,当前分支已经切换到dev分支了
image.png
-
将dev分支 推送到gitlab
image.png
image.png
-
gitlab上刷新可以看到推送dev分支成功
image.png
14.如何切换分支?
![](https://img.haomeiwen.com/i8020666/1dee89d50a02ba93.png)
- 如上图可以看到Local Branches是本地分支, Remote Branches是远程gitlab上的分支。
15.如何合并dev分支代码到master分支?
-
首先在远程dev分支修改代码
image.png
-
在本地仓库master分支拉取代码,选择从dev分支拉取并进行合并
image.png
-注意:如果出现冲突,解决后推送到远程仓库即可。
16.如何删除用不到的分支?
-
假如dev分支是为了修改某个bug创建的分支,bug修改完成,合并到主分支之后,dev没用了,就可以进行分支删除
-
如下,删除本地和远程的dev分支
image.png
image.png
17.如何查看提交历史?
![](https://img.haomeiwen.com/i8020666/fc57fef811ea67c9.png)
eclipse版
1.在gitlab上创建一个新的项目git_test_eclipse
![](https://img.haomeiwen.com/i8020666/948913d04484575c.png)
2.在eclipse上git clone代码
![](https://img.haomeiwen.com/i8020666/af302e0f3a110f77.png)
![](https://img.haomeiwen.com/i8020666/f922b983ca949b46.png)
![](https://img.haomeiwen.com/i8020666/4989e80916e1b0a2.png)
![](https://img.haomeiwen.com/i8020666/dfbd5d0bdc59d002.png)
-
因为是在gitlab创建的空项目,所以先在其他路径创建一个springboot项目
image.png
-
复制新创建项目文件夹下的内容到git clone下来的目录里。
image.png
-
导入maven项目,即git clone的项目
image.png
3.eclipse上进行首次提交,打开git操作页面
![](https://img.haomeiwen.com/i8020666/3b60a5331271cb2e.png)
![](https://img.haomeiwen.com/i8020666/a170b90d6b57b2eb.png)
-
添加修改到暂存区
image.png
-
添加到暂存区后,可提交到本地git仓库,右键→Team→commit
image.png
image.png
-
push推送到远程仓库,右键→Team→remote→push
image.png
-
注意:选择下一步做如下选择,提交主分支
image.png
-
再下一步 → finish
image.png
-
查看远程仓库gitlab发现已被提交到远程
image.png
4.eclipse如何拉取远程仓库的更新到本地?
-
先在gitlab更新一下README.md文件,模拟同事修改提交后,我本地进行拉取更新。
image.png
-
直接右键→Team→Pull拉取并合并
image.png
image.png
5.如何解决冲突?
-
首先在远程仓库修改README.md文件
image.png
-
其次在本地修改README.md并提交到本地仓库
image.png
![](https://img.haomeiwen.com/i8020666/5ecfefcb9145dd32.png)
-
然后进行拉取远程合并右键→Team→Pull之后冲突就产生了
image.png
image.png
-
然后右键→Team→add to inde添加到暂存区,之后就可以commit提交本地,romote→push推送远程。
image.png
image.png
image.png
6.创建新的分支dev并推送到远程仓库
![](https://img.haomeiwen.com/i8020666/fe3f1aa90ff7f4fe.png)
![](https://img.haomeiwen.com/i8020666/6d147c739b1786a3.png)
![](https://img.haomeiwen.com/i8020666/97281946bfc949d0.png)
-
push推送dev分支到远程仓库
image.png
image.png
image.png
7.如何切换分支
![](https://img.haomeiwen.com/i8020666/dcb3702d9deba06e.png)
![](https://img.haomeiwen.com/i8020666/98fe02a3771e8e04.png)
8.如何把dev分支合并到主分支?
- 首先切换dev分支,把远程dev分支的pull到本地
- 切换到主分支
-
然后点击右键→Team→Merge
image.png
-
选择要合并到主分支的分支,这里选择本地Local的dev分支
image.png
image.png
-
解决冲突
image.png
9.如何删除用不到的分支dev?
- 切换到主分支master
-
按照如下图中点击删除分支
image.png
image.png
10.如何查看提交历史?
![](https://img.haomeiwen.com/i8020666/4f44f4fb106573a4.png)
![](https://img.haomeiwen.com/i8020666/2de167b5b0d6dbf2.png)
![](https://img.haomeiwen.com/i8020666/96a534cebc1aeab5.png)
Terminal命令行版
讲解Terminal使用Git我还是以上面讲idea的git_test工程为例。
1.克隆git_test工程到本地
![](https://img.haomeiwen.com/i8020666/905d72e2c744e54b.png)
- 直接在命令行cmd或者powerShell都可以,我更喜欢在idea的Terminal命令行操作
-
打开idea的命令行Terminal,切换到E盘
image.png
- 克隆项目到本地
git clone https://git.lug.ustc.edu.cn/kangqing/git_test.git
![](https://img.haomeiwen.com/i8020666/036c15b5bca8c865.png)
-
idea打开e:/git_test项目
image.png
2.如何提交代码?
- 我们新添加一个文件,yunqing.md
-
选择记住,以后新建文件都加到git
image.png
![](https://img.haomeiwen.com/i8020666/d962b5a7e6798354.png)
- 查看更改的信息
git status
- 添加所有修改文件到暂存区(注意所有文件是最后的点),也可指定添加具体文件到暂存区
git add .
- 提交暂存区中的更改到本地仓库,并添加提交备注信息
git commit -m '第一次提交'
- 推送到远程gitlab仓库
git push
![](https://img.haomeiwen.com/i8020666/27aa33a7e70ec17b.png)
-
在远程gitlab上可以看到推送成功
image.png
3.如何拉取远程仓库的代码?
-
在远程上修改yunqing.md文件,模拟同事提交推送的修改
image.png
- 本地直接git pull拉取并合并代码
git pull
![](https://img.haomeiwen.com/i8020666/878be5a9579383fa.png)
4.如何解决冲突?
-
在本地修改yunqing.md并提交本地仓库
image.png
注意上图中并没有提交暂存区就提交成功了,因为提交的时候加了-a,就代表先提交暂存区
git commit -am '提交本地修改制造冲突1111'
-
在远程修改yunqing.md文件
image.png
-
git pull拉取合并代码,出现冲突
image.png
-
该删的删,该改的改
image.png
-
解决冲突之后提交本地仓库,然后推送到远程gitlab
git commit -am '冲突解决提交本地仓库'
git push
![](https://img.haomeiwen.com/i8020666/856fe68570b3448e.png)
5.如何新建分支?
git branch dev
6.查看分支?
git branch -a
![](https://img.haomeiwen.com/i8020666/1c460f73dec8c5b4.png)
7.如何切换分支?
git checkout master
![](https://img.haomeiwen.com/i8020666/44a4e33cbfdbd773.png)
8.如何创建并切换分支?创建并切换到test分支
git checkout -b test
9.如何推送test分支到远程gitlab?
- 首先切换到test分支
- 执行推送
git push
- 发现提示推送分支应该执行的语句,按照提示的执行
git push --set-upstream origin test
![](https://img.haomeiwen.com/i8020666/9c38c48151e6d5a1.png)
![](https://img.haomeiwen.com/i8020666/34a924350554981b.png)
10.如何删除分支?例如删除dev分支
git branch -d dev
11.如何合并分支?例如为了修改一个紧急bug创建的test分支,修改内容后要合并到主分支。
-
切换到test分支修改
image.png
- 提交
git commit -am 'test分支上修改一个bug'
- 切换回主分支
git checkout master
- 合并test分支到主分支
git merge test
![](https://img.haomeiwen.com/i8020666/2e0256c046192050.png)
12.合并分支的之后遇到冲突怎么办?
- 切换到test分支
git checkout test
- 修改yunqing.md文件
- 提交到本地仓库
git commit -am 'test分支上作了修改,制造冲突1111'
- 切换回主分支
git checkout master
- 在主分支上更改yunqing.md制造冲突222222
- 提交到本地仓库
git commit -am '在主分支上更改yunqing.md制造冲突222222'
- 合并test到主分支
git merge test
![](https://img.haomeiwen.com/i8020666/461ff912ddfebba6.png)
![](https://img.haomeiwen.com/i8020666/c627eca1516cb1ff.png)
- 直接把有冲突的地方改正然后提交。
git commit -am '合并解决冲突'
- 最后推送到远程仓库
git push
13.如何查看提交历史?
git log
注意,git log命令查看提交历史没有图形化界面看起来看舒服,可直接按下英文状态下q退出
- 或者直接gitk调出git默认提交历史图形界面
gitk
![](https://img.haomeiwen.com/i8020666/4809beb98eee7ad8.png)
更多git相关命令行教程请看http://iissnan.com/progit/