GTI常用命令
一、仓库初始化
git init # 当前路径也是工作区
git -bare init
二、跟踪和提交操作
git add # 将文件跟踪起来,加入到暂存区中
git commit # 将暂存区提交本地版本库
git commit -a # 将本地工作区中的被修改文件(已跟踪状态的)都提交到本地版本库中(当然是先添加到暂存区,后提交本地版本库中)
三、分支操作
1.增删查
git branch # 查看本地分支
git branch new_branch # 新建本地分支
git checkout dev # 切换分支到dev
git checkout -b mywork master # 基于master分支,新建分支并切换到分支mywork
git branch -d dev # 删除那些被当前分支合并的分支
git branch -D dev # 强制删除分支
2.改(分支合并)
git merge dev # 合并dev分支到当前所在分支
git commit -a # 解决冲突后,提交
四、查看历史操作
git log 文件名 # 查看commit的历史记录
git log --pretty=oneline # 只显示版本号和提交信息
# git log 无法查看被回退的commit信息
git reflog # 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git show # 查看某次commit的修改内容
五、比较操作
git diff # 比较文件在暂存区和工作区的差异
git diff --cached # 比较文件在暂存区和本地仓库的差异
git diff HEAD # 比较文件在工作区和本地仓库的差异
$ git diff
diff --git a/test.txt b/test.txt
index 753ad01..d9eff2d 100644
--- a/test.txt
+++ b/test.txt
@@ -1,3 +1,4 @@
123123
isdfsd
sdfds
+sdfds
第一行:diff --git a/test.txt b/test.txt ,git diff实质上用的是diff的文本比较工具,其中a/test.txt代表源文件,也就是修改前的文件, b/test.txt代表比目标文件,也就是修改后的文件;
第二行:index 753ad01..d9eff2d 100644 , index后面两个字符串表示两个文件的hash值,最后的数字是文件的权限和属性(?);
第三四行:---代表源文件,+++代表目标文件;
第五行:差异小结,@@ -1,3 +1,4 @@ ,分为两个部分,第一个是-1,3,-表示源文件,1,3表示从第一行开始的三行,后面的+1,4,则表示目标文件的第一行开始的四行内容。差异小结可能会有多个。
剩下的行都是具体的差异信息,其中以空格开头的行代表源文件与目标文件没有差异,以-开头 的行代表在源文件的基础上删除,以+开头代表在源文件基础上添加;
六、版本回退
1.总命令
git reset [--soft | --mixed | --hard] [HEAD]
--mixed 为默认,可以不用带该参数。用于重置暂存区,和上一次的提交保持一致。
2.暂存区回退
git reset # 默认回退暂存区
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset 052e # 回退到指定版本
3.软回退(只去掉log中的commit信息,不回退文件版本)
git reset --soft # 用于回退到某个版本
git reset --soft HEAD~3 # 回退上上上一个版本
4.硬回退(回退文件版本)
git reset --hard # 将暂存区与工作区都回到上一次版本,并删除之前的所有信息
git reset --hard HEAD # 重置工作区和暂存区到 本地版本库的当前版本
七、远程仓库相关操作
git remote -v # 查看远程仓库信息
git remote add origin 远程仓库链接.git(注意后面要+.git) # 连接远程仓库
git push -u origin master # 推送本地仓库到远程仓库,首次提交需要使用完整命令
git pull -u origin master # 拉取远程仓库到本地仓库
# 包含了两个操作
git fetch -u origin master 分解命令1 # 第一个操作是拉取origin上的master分支到本地分支上
git merge origin/master 分解命令2 # 第二个操作是合并origin的master分支到本地分支上,如有冲突得手工解决
八、文件状态查看
git status -s # 简易查看文件状态信息
# 输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言。都是以本地版本库为参考
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git reset HEAD
#
# new file: test.txt
#
# Changes not staged for commit:
# (use "git add
# (use "git checkout --
#
# modified: test.txt
#
$ git status -s
AM test.txt
九、查看GIT配置参数
git config -l