git常规操作命令整理


目录

1 配置

1.1 配置仓库参数

2 提交与修改

2.1 初始化仓库

2.2 添加文件到暂存区

2.3 添加提交文件到仓库

2.4 回退版本

2.5 删除文件

2.6 移动、重命名文件

2.7 查看仓库当前状态

2.8 比较文件差异

2.9 查看库文件

3 日志

3.1 查看日志

3.2 查看指定文件日志

4 分支管理

4.1 分支创建与删除

4.2 分支切换

4.3 分支合并

5 远程操作

5.1 拷贝项目

5.2 远程库

5.3 检出远程库文件并合并

5.4 提交文件到远程库


---配置---

配置仓库参数:

git config --[全拼参数] [配置文件属性] <属性值>
--global: 不加参数只对当前仓库有效
--list: 查看config配置
例子:
$ git config --global user.name "2018246490" #设置user.name属性值
$ git config --global user.email "2018246490@qq.com" #设置user.email属性值
$ git config --list #查看全部属性

---提交与修改---

初始化仓库:

git init <目录>
例子:
$ git init #将当前文件夹初始化为git仓库
$ git init /e/demo #将/e/demo文件夹初始化为git仓库

添加文件到仓库:

git add <文件>
例子:
$ git add *.c   #添加 .c结尾的文件
$ git add README #添加README文件或文件夹

暂存区文件提交到本地仓库:

git commit <文件> -[缩写参数] <参数值>
-a: 修改文件后不需要执行 git add 命令,直接来提交
-m: 提供注释
例子:
$ git commit -m '第一次提交' #提交全部缓存区文件到本地库
$ git commit a.html b.html -m '第一次提交' #提交缓存区文件a.html b.html文件到本地库
$ git commit -am '直接提交文件' #全部文件直接从工作区提交到本地库(缓冲区也进行了更新)

回退版本:

会导致与远程库版本不一致问题,需要先pull远程项目,再push,直接push -f 会导致远程库版本记录与本地一致,从而丢失其他人员的提交记录。
git reset --[全拼参数] <版本号>
--soft: 本地库回退到指定版本,工作区与缓存区不变
--mixed: 默认,本地库与缓存区回退到指定版本,工作区不变
--hard: 本地库、缓存区、工作区回退到指定版本
例子:
$ git reset --soft HEAD~3  #本地库回退到上上上一个版本
$ git reset HEAD~3  #本地库与缓存区回退到上上上一个版本
$ git reset --hard HEAD~3  #本地库、缓存区与工作区回退到上上上一个版本
$ git reset --hard bae128  #本地库、缓存区与工作区回退到bae128版之前
$ git reset --hard gitee/master  #将本地的状态回退到和远程库gitee/master的一样
HEAD说明:
  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • 以此类推...
  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD^2 上上一个版本
  • 以此类推...

删除文件:

git rm -[缩写参数] --[全拼参数] <文件>
--cached: 删除暂存区文件
-f: 强行删除文件
-r: 递归删除,删除目录下的全部目录与文件
例子:
$ git rm index.html  #删除工作区、缓存区index.html文件
$ git rm --cached index.html  #删除、缓存区index.html文件
$ git rm -f index.html  #强行删除工作区、缓存区index.html文件
$ git rm -r /a  #删除a目录下的全部文件

移动、重命名文件:

git mv -[缩写参数] <文件> <新文件>
-f: 强行修改文件
例子:
$ git rm index.html b.html  #修改index.html文件为b.html
$ git rm -f index.html b.html  #如果b.html存在则强制修改index.html文件为b.html

查看仓库当前状态:

git status -[缩写参数]
-s: 获取简短的输出结果 可不加

比较文件差异:

git diff --[全拼参数] <文件名称>
--cached/staged: 缓存区文件与上一次提交的差异 ,默认是工作区文件与缓冲器文件对比
例子:
$ git diff README.md  #对比README.md文件工作区与缓冲区的差异
$ git diff --cached README.md  #对比README.md文件缓冲区与上次提交的差异

查看库管理文件:

git ls-files

---日志---

查看日志:

git log --[全拼参数]
--oneline: 简洁查看历史记录
--graph: 查看历史中什么时候出现分支、合并
--reverse: 逆向查看所有日志
--author: 查看指定用户的日志
例子:
$ git log --oneline  #简洁查看全部历史记录
$ git log --reverse --oneline  #简洁逆向查看全部历史记录
$ git log --graph   #查看什么时候出现分支、合并
$ git log --author=Linus --oneline -5  #查看Linus用户的相关日志

查看指定文件日志:

git blame <文件>
例子:
$ git blame README.md  #查看README.md文件历史记录

---分支管理---

分支创建与删除:

git branch -[缩写参数] <分支名称>
-v: 分支的最新提交信息
-d: 删除分支
例子:
$ git branch  #查看全部分支
$ git branch -v  #查看全部分支与它们的最新提交信息
$ git branch main  #添加main分支
$ git branch -d main  #删除main分支

分支切换:

git checkout <分支名称>
例子:
$ git checkout main  #切换到main分支

分支合并:

git merge <分支名称>
例子:
$ git merge main  #将main分支合并到当前分支

---远程操作---

拷贝项目:

git clone <远程库链接> <本地目录>
例子:
$ git clone git@github.com:chloneda/demo.git  #将远程库克隆到当前目录

远程库:

git remote [操作命令] <远程主机名> <操作命令参数> -[缩写参数]
show: 显示远程
add: 添加远程库
rename: 修改远程主机名称
rm: 删除远程主机
-v: 关联远程库的详细信息
例子:
$ git remote -v  #查看远程库详细信息
$ git remote show https://github.com/tianqixin/runoob-git-test  #显示某个远程仓库信息
$ git remote add github git@github.com:chloneda/demo.git  #添加主机名为github远程库
$ git remote add gitee git@gitee.com:chloneda/demo.git  #添加主机名为gitee远程库
一个本地库可以添加多个远程库
$ git remote rename gitee gitee2  #修改仓库名
$ git remote rm github  #删除github远程库

检出远程库文件并合并:

git pull <远程主机名> <远程分支名>:<本地分支名> --[全拼参数]
--allow-unrelated-histories: 允许不相关的历史提交,并强行合并(远程库覆盖本地)
例子:
$ git pull github main:main 或 $ git pull github main  #拉取github/mian分支与本地mian分支合并
$ git pull gitee master:main  #拉取gitee/master分支与本地mian分支合并
$ git pull github main --allow-unrelated-histories  #拉取github/mian分支与本地mian分支强行合并

提交文件到远程库并合并:

git push --[全拼参数] <远程主机名> <本地分支名>:<远程分支名>
--force: 忽略本地域远程库差异强行提交合并(本地覆盖远程库)
例子:
$ git push github main:main 或 $ git push github main  #提交本地mian分支与github/mian分支合并
$ git push gitee main:master  #提交本地mian分支与gitee/master分支合并
$ git push --force gitee main:master  #强行提交本地mian分支与gitee/master分支强行合并

posted @ 2021-12-09 17:35  低调是种习惯  阅读(75)  评论(0编辑  收藏  举报