软件地址
1,命令行工具下载地址:
https://git-for-windows.github.io/
2、Git的可视化工具:
https://tortoisegit.org/
3,GitHub网站:
http://www.github.com
安装
选择Git命令的执行环境,这里推荐选择第一个,就是单独用户Git自己的命令行窗口。
不推荐和windows的命令行窗口混用。
在“Configuring the line ending conversions”选项中,如果是跨平台项目,在windows系统安装,选择第一个选项;如果是跨平台项目,在Unix系统安装,选择第二个选项;非跨平台项目,选择第三个选项
在“terminal emulator”选项中,
第一个选项:使用专用的Git窗口(推荐)
第二个选项:使用windows的cmd命令行窗口。
在“Configuring extra”选项中,默认开启文件缓存即可。
git 操作
git bash的使用
1,设置初始化
1,在当前的项目所在的目录,点击右键bash here
2,初始化 git init
3,设置用户名和邮箱(这个邮箱最好使用github的账号)
配置当前
git config user.name “fan”
git config user.email “50552216@qq.com”
配置全局的
git config --global user.name “fan”
git config --global user.email “55252216@qq.com”
2,git status 查看代码状态
3,git add 添加代码
未添加的文件显示为红色
添加完后文件名显示变绿 说明进了暂存区
4,git commit 提交上传
进入vim状态
进入编辑模式后,输入此次编辑的名称
如果此时有文件发生改变,查看git status 时,修改的文件显示为红色
modified: src/123/123.java
此时重新提交代码的话 git add
5,git commit -m “update 02” 提交上传
[master 14dca6a] update 02
1 file changed, 2 insertions(+)
fan@echo-fan MINGW64 /d/git-space/git-pro (master)
6, git log 查看提交的信息
git log --pretty=oneline 将日志在一行显示
14dca6a137c4fb1ebbef4433ee090a1be4cbc3f0 update 02
1dc5979c5fbc2b4cb3a390fc7162aca5f58b9667 create 01
7,代码版本的替换
回退到上一个版本
git reset --hard HEAD^
回退过个版本
git reset --hard HEAD^2(回退两个版本)
8,查看git的操作日志
$ git reflog
14dca6a HEAD@{0}: reset: moving to HEAD^
fe3fe10 HEAD@{1}: commit: update 03
14dca6a HEAD@{2}: commit: update 02
1dc5979 HEAD@{3}: commit (initial): create 01
9,通过操作日志回退版本 (将所有文件都还原)
git reset --hard fe3fe10
10,还原文件(只还原一个文件)
git checkout – src/123/123.java
11,删除文件
先删除文件
再git add再提交
分支管理
查看分支(绿色标识在哪,就显示在哪个分支)
$ git branch -v
* master adeeb57 fix bug
创建分支
git branch dev
切换分支
git checkout dev
合并分支(这个过程是拉取的过程)
git merge dev
举例说明
1,创建文件
$ vim abc.java
2,增加文件
$ git add abc.java
3,提交
$ git commit -m “new file”
4,查看状态
$ git status
5,查看分支(目前是在dev分支)
$ git branch -v
- dev a4f0b7b new file
master adeeb57 fix bug
fan@echo-fan MINGW64 /d/git-space/git-pro (dev)
6,切换至master
$ git checkout master
Switched to branch ‘master’
fan@echo-fan MINGW64 /d/git-space/git-pro (master)
7,如果dev分支的内容是测试过可以使用上线的 可以进行merge
git merge dev
Updating adeeb57…a4f0b7b
Fast-forward
abc.java | 1 +
1 file changed, 1 insertion(+)
create mode 100644 abc.java
fan@echo-fan MINGW64 /d/git-space/git-pro (master)
8,分支的状态都变为dev的状态
$ git branch -v
dev a4f0b7b new file
- master a4f0b7b new file
git合并时冲突
当两个分支同时修改同一个文件的时候,merge的时候会产生冲突
$ git merge dev
Auto-merging abc.java
CONFLICT (content): Merge conflict in abc.java
Automatic merge failed; fix conflicts and then commit the result.
fan@echo-fan MINGW64 /d/git-space/git-pro (master|MERGING)
所以必须解决这个abc.java的冲突才能继续其他的操作,或则将一直处于merge状态。
解决办法:
①编辑这个冲突文件,可以在git中,也可以在编译器中
②git add abc.java
③git commit -m 版本名
完成commit后才退出MERGING状态,才算完成了合并分支的操作