当前位置:   article > 正文

Git从入门到精通

git从入门到精通

Git从入门到精通

1.Git概述

1.1 什么是Git?

Git是一种分布式版本的版本控制系统。

1.2 用户设置?

git config --global user.name "随风"
git config --global user.email "123@163.com"
  • 1
  • 2

输入完成可以检查下

git config --list
  • 1

1.3 Git设置缩写

#git st 相当于 git status
git config --global alias.st status
  • 1
  • 2

简化查询log命令

#git l
git config --global alias.l "log --oneline --graph"
  • 1
  • 2

小提示:
整个项目目录中,无论哪个文件或目录被删除了都能找回,但如果.git目录被删除了就没办法找回来了。

2 Git的使用

2.1 Git工作原理

在这里插入图片描述

2.2使用Git查询历史记录的常见问题

2.2.1 想要查找某个人或某些人的Commit

#单个人
git log --oneline --author="随风" 
#多个人
git log --oneline --author="随风\|随风1" 
  • 1
  • 2
  • 3
  • 4

2.2.2 想要查找Commit信息中是否含有某些关键字

使用–grep参数,可以从Commit信息中搜索符合关键字的内容,如搜索“LOL

git log --oneline --grep="第一次提交"
  • 1

2.2.3 怎么在Commit文件中找到Ruby

使用-S参数,可以在所有的Commit文件中进行搜索,找到那些符合特定条件的内容:

git log -S "Ruby"
  • 1

2.2.4 怎么查找某一时间内的Commit

在查看历史记录时,可以搭配–since和-- until参数查询:

git log --oneline --since="9am" --until="12am" --after=="2017-01"
  • 1

2.3 Git中删除文件或变更文件

2.3.1 删除文件

# 直接删除
rm bb.txt
# 使用git 删除
git rm bb.txt
  • 1
  • 2
  • 3
  • 4

2.3.2 加上–cached参数

不论是执行rm命令,还是执行git rm 命令,都会真的把这个文件从工作目录中删除,如果不是真的把这个文件删除,只是不想让这个文件再被Git控制,可以加上–cached参数:

git rm aa.txt --cached
  • 1

git commit提交内容进行修改

2.3.3 变更文件名

mv bb.txt cc.txt
  • 1

2.4 查看特定文件的Commit记录

#查看整个项目的Commit记录
git log
#查看特定文件的Commit记录
git log -p aa.txt
  • 1
  • 2
  • 3
  • 4

2.5 挽回已经被删除的文件或目录

#删除
rm aa.txt
# 挽回
git checkout aa.txt
  • 1
  • 2
  • 3
  • 4

小提示:
当使用git checkout命令时,Git会切换到指定的分支,但如果后面接的是文件名或路径,Git则不会切换分支,而是把文件从.git目录复制一份到当前的工作目录(把暂存区中的内容或文件拿来覆盖工作目录中的内容或文件)。

2.6 处理刚Commit的文件

使用 git reset命令操作

git reset的参数对工作目录及暂存区的影响

模式mixed模式soft模式hard模式
工作目录不变不变被删除
暂存区被删除不变被删除

回退到以前版本

# 知道具体的编码
git reset 提交记录
# 回退到上一次提交记录
git reset master^
git reset HEAD^
#回退到n次提交记录之前
git reset HEAD~n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3 使用分支

3.1 开始使用分支

# 1. 查看分支
git branch
# 2. 新增分支
git branch cat
# 3. 更改分支名称
git branch -m cat tiger
# 4. 删除分支
git branch -d dog
# 5. 强制删除分支
git branch -D dog
# 6. 切换分支
git checkout tiger
# 7. 使用Checkout命令的-b参数直接创建分支并自动切换过去
git checkout -b bird
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

小提示:
Git在切换分支时,会用该分支指向的那个commit(新分支)的内容‘更新’暂存区及工作区。但在切换分支前所做的改动则会留在工作目录中不受影响。

3.2 合并分支

把A分支的内容合并到B分支
首先切换到B分支

git checkout B
# 合并内容
git merge A
  • 1
  • 2
  • 3

3.3 取消reset方法

#进行回退操作
git reset HEAD^ --hard
# 恢复
git reset ORIG_HEAD --hard
  • 1
  • 2
  • 3
  • 4

3.4 修改历史信息

# 修改最后一次提交文本信息
git commit --amend -m "first commit"
# 修改commit信息
##1.切换互动模式
git rebase -i 09bf59d
##2. 使用reword替换pick
##3. 修改提交内容
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

小提示:
在互动模式的记录中,由上而下是从最旧到最新,与git log指令所呈现的结果是相反的。
Reset指令、Rebase指令、与Revert指令的区别

指令修改历史记录说明
Reset把当前状态设置成某个指定的Commit的状态,通常适用于尚未推出去的Commit
Rebase不管是新增、改动、删除Commit,还是用来整理、编辑还没有推出去的Commit,都相当方便,但通常只适用于尚未推出去的Commit。
Revert新增一个Commit来反转(或取消)另一个Commit的内容,原来的Commit依旧会保留在历史记录中。虽然会因此增加Commit数量,但通常比较适用于已经推出去的Commit,或者不允许使用Reset或Rebase来修改历史记录指令的情景。

3.5 暂存编辑内容

背景:
在开发一个项目过程中,遇到临时任务,需要切换到其他分支上,对于新增的内容需要怎么处理?
方法1:先提交,然后reset.
方法2: 现暂存,处理完然后再取出来。

#针对方法2
## 1,保存
git stash
## 2. 查看保存信息
git stash list
## 3. 取回保存信息
git stash pop stash@{2}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号