此博客为该 B 站视频的学习笔记
Git基本命令行用法讲解
文章目录
git-config
1. 配置命令:
git config --global user.name "xxx"
git config --global user.email xxxxxxxxxx@163.com
git config --global http.postBuffer 2M # 最大上传文件的大小
git config --global color.ui true
2. 查看配置:
git config --list
cat ~/.gitconfig # 查看配置文件
3. 直接修改配置文件
vim ~/.gitconfig
• 配置文件内容如下:
[user]
email = 19805159366@163.com
name = SEUZTh
[https]
[http]
postBuffer = 2M
4. 删除配置
git config unset --global user.name
git-init
1. 初始化
• 使用当前目录作为Git仓库,我们只需使它初始化。
git init
该命令执行完后会在当前目录生成一个 .git 目录。
• 使用我们指定目录作为Git仓库。
git init newrepo
2. 查看生成的.git目录
cd .git
ls
除了config这个文件,.git的作用就是存储项目级别的配置信息。
git-commit
1. 显示工作目录和暂存区的状态
git status
2. 提交目录下所有文件
git add .
3. 提交指定文件
git add xxx.格式
4. 添加说明
git commit -m '说明'
5. 查看历史提交
git log
git-diff
1. 查看修改前后的区别
git-diff
加号表示添加的内容,减号表示删除的内容。
即使是修改某一行,也会显示删除和添加。
2. 添加到暂存区
git add .
或者指定文件:
git add xxx.格式
3. 查看状态
git status
4. 查看暂存区和Reportory的区别
git diff --staged
5. 将暂存区的内容提交
git commit -m '说明'
6. 查看提交历史
git log
git-rename
1. 查看状态
给文件重命名后查看:
git status
会显示删除了一个文件,有一个文件未被跟踪
2. 告诉git,删除了某文件
git rm xxx.格式
3. 添加重命名后的文件
git add xxx.格式
4. 查看状态
git status
会显示renamed某个文件。
5. 提交
git commit -m '把xxx重命名为xxx'
git-mv
1. 重命名文件
git mv 旧文件.格式 新文件.格式
2. 查看状态
git -status
3. 提交
git commit -m '把某某重命名为某某某'
4. 移动文件或目录
git不会跟踪空白目录,新建目录后,查看状态时不会提示有新文件夹。
git mv xxx.格式 新文件夹/
git mv 旧文件夹 新文件夹/
查看状态时会提示重名了,新文件名包含文件路径。
5. 提交
git commit -m '把什么移动到了什么目录下'
git-rm
1. 删除文件
git rm xxx.格式
2. 查看状态
git status
3. 提交
git commit -m '删除了某某某文件'
删除之前要确定这个文件已经在Git Reportory中,并且没有将要被提交的修改,否则不会允许删除。
git-head
1. 删除文件
git rm xxx.格式
2. 恢复文件
git checkout HEAD -- xxx.格式 # HEAD代表最近的一次提交,--表示当前分支
3. 提交删除后恢复文件
如果是rm删除后并commit提交后,工作目录变成干净的,此时想要恢复的话,需要恢复到最近一次的上一次提交
git checkout HEAD^ -- xxx.格式 # ^表示上一次提交,两个^^上上次
再提交
git commit -m '恢复了某某某文件'
git-revert
1. 查看历史提交
只查看有id号的一行
git log --oneline
2. 恢复某次提交
git revert id号
会打开默认的编辑器,输入关于这次提交的信息。
git-reset
1. soft
不会影响到工作区和暂存区的东西。
git log --oneline
git reset --soft id号 # 将指针指向id这次提交
再次提交,会覆盖掉id号后面的提交。
2. hard
把工作区和暂存区直接重置到一个提交的状态。
git reset --mixed id号
会发现暂存区中的东西不见了,需要git add添加并commit提交。
3. mixed
会把暂存区的东西重置到指定的提交状态,并把指针指向这个提交
git reset --hard id1
会发现工作目录干净了。
git reset --hard id2
又重置回最后一次提交
git-branch
1. 查看项目所有的分支
git branch
“*”星号表示当前分支的位置。
2. 创建新分支
git branch xxx
3. 切换分支
git checkout xxx
4. 查看当前分支
git branch
git-checkout
1. 查看提交历史(显示是哪个分支上的)
git log --oneline --decorate
2. 切换到主分支
git checkout master
此时查看历史只能查看master分支上的提交。
3. 查看所有分支的历史提交
git log --oneline --decorate --all
git-branch-diff
1. 查看两个分支的区别
git diff master..某某某
2. 查看两个分支的同一文件的区别
git diff master..某分支 某文件
git-fast-forward
1. 合并某分支到master
git merge 某分支
这是一个Fast-forward,不会是一个新的提交,查看历史提交,会显示最后一次是在分支上进行的提交。
git diff master..某分值
对比后没有区别。
git-merge
1. 切换分支
git checkout 某分支
git branch # 查看当前分支
2. 快捷提交
这样做就不需要add了。
git commit -am '说明'
git log --oneline # 查看历史提交
3. master和某分支均已修改的情况下合并
不能再使用Fast-forward。
git log --oneline --decorate --all -19 --graph # 查看10条,所有分支的历史提交
git branch # 查看当前所在分支
git merge 某分支
输入合并提交的描述(可保持默认)
再次查看:
git log --oneline --decorate --all -19 --graph # 查看10条,所有分支的历史提交
git-conflict
1. 合并分支时出现冲突
将master合并到某分支时,
git merge master
提示CONFLICT (content): Merge conflict in xxx.
到该文件中,git已经给标出冲突的内容,删掉我们不需要的,留下需要的即可:
<<<<<<< HEAD
内容
=======
内容
>>>>>>> master
接下来提交:
git add.
git commit # 这里可以不用写描述信息
把弹出的内容中Conflicts那几行代码删除,保存退出,即合并成功,查看一下日志:
git log --oneline --decorate --all --graph
rm-branch
1. 给分支重命名
git branch -m 已经存在的分支 新名字
2. 删除分支
git branch -d 某分支