1、git使用:
Git GUI Here 和 Git Bash Here区别
2、初始操作
- 设置用户名
git config --global user.name “你的用户名”
- 设置邮箱
git config --global user.email “你的邮箱”
- 查看当前用户名
git config user.name
- 查看当前密码
git config user.password
- 查看当前邮箱地址
git config user.email
- 修改当前用户名
git config --global user.name “新的用户名”
- 修改当前密码
git config --global user.password “新的密码”
- 初始化
git init
在目录下执行完初始化后,该目录会变为git管理的目录
3、文件操作
- 创建文件
touch 文件名.文件类型
- 修改文件
使用文本编辑器或使用命令行工具帮助修改
- 添加到暂存区
git add 文件名.文件类型
- 同时添加多个文件
git add 文件1.文件类型 文件2.文件类型
或
git add .
- 提交到版本库
git commit -m ‘设置版本名’
- 查看版本库状态
git status
- 查看提交日志
git log
- 查看文件差异
查看工作区和暂存区差异:
git diff
查看工作区和版本库差异:
git diff HEAD
查看暂存区和版本库差异:
git diff --cached
差异命令输出分析:
diff --git a/readme.txt b/readme.txt
index 9977f10..58609b2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
aabb
-cc
\ No newline at end of file
+ccdd
(修改前文件也就是暂存区文件,修改后文件也就是工作区文件)
a/readme.txt b/readme.txt:两个版本文件,用a/ b/区分修改前和修改后文件,增加可读性
9977f10..58609b2:工作区和暂存区文件的前7位hash值,git用了加密算法,一共40位
--- a/readme.txt,+++ b/readme.txt: ---表示修改前的文件 +++表示修改后的文件
@@ -1,2 +1,2 @@:-1,2表示修改前文件从第1行开始显示2行数据,+1,2表示修改后文件从第1行开始显示2行数据
aabb -cc +ccdd:aabb前面没有符号代表两个版本文件在这一行相同,-cc表示这一行修改前是cc,+ccdd表示这一行修改后是ccdd
\ No newline at end of file:代表没有换行符(书写规范问题)
- 删除文件
git rm 文件名
4、 版本操作
- git工作区、暂存区、本地库
在当前目录下执行git初始化操作会出现.git隐藏文件夹,该目录变为工作区
打开.git文件夹
- 撤销:已修改,未暂存
全部文件(慎重)
git checkout . //撤销工作区的修改
或
git reset --hard //同时撤销工作区修改和清空暂存区内容
某个文件
git checkout – 文件名
- 撤销:已暂存,未提交
git reset HEAD //删除添加到暂存区的内容,只操作暂存区
或
git reset --hard //同时撤销工作区修改和清空暂存区内容
- 撤销:已提交,未上传,可以版本回退(使用git log命令可以查看历史版本)
git reset --hard ‘版本id’
回退命令版本id可以不全输入,一般输入前几位会自动匹配
5、分支操作
- 查看分支
git branch
- 创建分支
git branch 分支名字
- 切换分支
git checkout 分支名字
- 合并分支 (注意:将指定分支合并到当前分支)
git merge dev
比如当前分支是master:执行此命令,就是将dev分支合并到master分支
6、远程仓库操作
- 查看所有远程仓库
git remote
- 查看指定远程仓库
git remote 仓库名
- 修改远程仓库地址
git remote set-url origin 新远程仓库地址
- 删除远程仓库
git remote rm origin
- 添加远程仓库地址
git remote add origin 指定仓库地址
- 修改仓库地址可以到.git文件夹下的config配置文件中手动修改
- 推送到远程仓库(可能需要输入用户名和密码,也就是远程仓库的用户名和密码)
#将master分支文件推送到远程仓库
git push -u origin “master”
- 将远程仓库分支下载到本地
git fetch origin 远程分支名
这个命令会将远程仓库的更新下载到本地,但不会自动合并或更新你的当前工作区。用户可以进行检查,确认无误后再选择进行合并,实际应用中此命令更安全一些
git log -p master …origin/master //比较本地的master分支和origin/master分支的差别
再选择与当前本地分支进行合并
git merge origin/远程分支名
- 将远程仓库分支拉到本地
git pull origin 远程分支名
这个命令其实包含了两个操作:首先执行了git fetch origin,然后自动进行了合并到工作区,这个操作可能会产生合并冲突,需要手动解决