Git命令进阶

GIT命令进阶

1 文件忽略进阶:忽略已加入版本控制器的文件

1.1 设置忽略排除

1.1.1 忽略文件夹

vim gitigorne 
-------------------------------
test/* # 忽略test文件夹下的所有文件
*.class # 忽略以class结尾的所有文件

1.1.2 设置反向配出

!test/index.php # 排除忽略test文件夹下的index.php文件

!表示要排除的意思,因此在.gitignore文件夹中加入!也可以理解为取反的意思

1.2 忽略已提交的文件

有的时候,可能一不小心把某一个原本应该忽略的目录提交到了版本控制器中,再使用 .gitignore 文件去忽略它的时候,发现无论如何都无法再次将其忽略,只好默默忍受;其实这是因为Git已经索引了该文件而导致.

1.2.1 忽略已存在的文件和文件夹

git rm --cached test2/index.php # 从换从中删除已提交的文件
git rm -r --cached test3/ # 删除缓存中的文件夹

接着我们需要将此修改提交,因为在忽略文件里已经忽略了该文件夹,所以在提交的时候需要注意加上-f参数,表示强制添加,参考命令如下:

git add -f test3

注意:

  1. 反向忽略应用场景是该文件夹大部分文件需要被忽略,只需要保留少部分的文件
  2. 忽略已存在的文件夹最后一步需要使用 -f 进行强制添加,否则会提示操作失败

2. 比较分支差异: 展示连个分支的差异部分

主要有两个部分:1. 比较分支的提交记录 2. 比较分支的代码差异。

2.1 查看代码差异

查看差异分为两种,具体的代码文件差异,和提交记录的差异,代码的具体差异分为3中方式:

  1. 查看了那些文件被修改了

  2. 查看某个文件的代码差异

  3. 查看全部代码差异

2.1.1 查看文件差异

我们想知道当前的分支与另外一个分支,有哪几个文件不一样,这个时候可以使用如下参考命令:

git diff master dev --stat

1586230102047

2.2.1 显示文件具体修改

通过前面的文件修改差异,知道了哪些文件被修改了,现在想知道具体被修改了什么内容

git diff master develop 文件名

2.2.2 显示全部文件的修改

git diff master develop 

2.2 查看提交记录差异

通常查看提交记录的不同有下面几种方法:

  1. 查看A分支有但B分支没有的记录
  2. 单纯的比较两个分支的差异
  3. 显示某个记录在某些分支上是否存在。

2.2.1 查看提交新纪录

查看develop分支中有的记录而在master分支中没有的记录

git log develop ^master

2.2.2 单纯比较差异

只查看两个分支记录有什么不一样

git log branch1.. branch2

2.2.3 查看各记录存在于那些分支上

git log --left-right develop...test

在图中,注意看我黄色框选的箭头符号,因为我们在命令中加入了-–left-right 所以左箭头 < 表示是 develop 的,右箭头 > 表示是 test 分支的。

  1. 基于当前的分支新建一个分支,并修改代码提交
  2. 使用git diff 分支1 分支2 的方式进行代码差异比较
  3. 使用git log 分支1..分支2 的方式进行提交记录的差异比较

3. reset命令:将仓库记录和恢复指定历史位置

git reset logdoe # 回退到指定的日志记录
git reset HEAD^ # 撤销最近一次提交

但是代码其实仍然是没有变化的,我们这里可以使用 git checkout 文件名来撤销文件修改,撤销修改后再通过 git status 去确认当前状态,参考命令如下

git checkout index.php  && git status

4. 删除过期分支

  1. 本地不存在,远程存在该分支,但不需要了
  2. 远程不存在,本地存在该分支,也不需要了
# 清理远程分支
git branch -a # 查看所有分支
git push origin --delete dev # dev: 远程分支的名称
# 清理本地分支
git checkout -b test #创建新分支
git push --set-upstream origin test # 第一次将本地分支推送到远程服务器
git remote show origin # 查看远程仓库信息
# 会拉去远程的分支信息与本地的信息做对于,发现远程分支已经删除,会对本地分支做标注
git remote prune origin 
git branch -vv # 查看关联失效的分支 [...: gone] 表示当前分支远程已经标记删除
git branch -d test # 删除分支

5. 配置多个远端仓库

#查看当前远程地址
git remote -v
# 推送到远程仓库
git remote add github https://github.com/wang7621422811/cpstats.git
# 修改默认推送地址 -u
git push -u github
# 从制定仓库拉去代码
git pull github
# 删除远程地址
git remote remove github
# 同时推送多个地址
git remote set-url --add origin https://....仓库地址
原文地址:https://www.cnblogs.com/smallwolf/p/12652610.html