Git常用命令汇总

1.初始化仓库

初始化仓库即将当前目录加入Git版本控制

mkdir repository
cd repository
git init

2.配置用户名和邮箱

# 当前仓库(目录),此用户下的其他仓库需要重新设置,优先级最高
git config user.name "monkey monkey"
git config user.email "monkey@163.com"
# 全局,这个用户下的所有仓库都可以使用,优先级次之
git config --global user.name "monkey02"
git config --global user.email "monkey02@163.com"
# 系统,使用此电脑的所有用户都可以使用
git config --system user.name "monkey03"
git config --system user.email "monkey03@163.com"
# 查看配置
git config --list
git config --system --list
git config --global --list
git config --local --list
# 删除配置
git config --unset user.name
git config --global --unset user.name

3.配置代理

git config http.proxy "http://user:password@xxx.xxx.xxx.xxx:port"
git config https.proxy "https://user:password@xxx.xxx.xxx.xxx:port"

3.添加文件

# 单个文件,多个文件,当前仓库下所有文件
git add read01.md
git add read01.md read02.md
git add .

4.提交变更

git commit -m "add three files";

5.查看仓库状态

Git分为工作区(就是当前的目录),暂存区(.git目录里面,暂时存放修改的地方,可以被丢弃),版本库(提交后到这里)

# 我们的修改都发生在工作区
# git add之后进入暂存区,还可以反悔
# git commit之后进入版本库,没法反悔
# git status可以查看修改到哪个区了
git status

6.版本查看

git log
git log --pretty=oneline

7.版本回退

# HEAD^代表上一个版本,HEAD^^代表上两个版本,HEAD~100代表上100个版本
git reset --hard HEAD^
# 也可以使用HASH值的前几位,不能太少,否则可能会重复
git reset --hard dd683b

8.版本返回

版本回退就像从现在回到了过去,此时,想从过去在回来该怎么办

git reflog
git reset --hard d4d2f67

10.撤销修改

# 丢弃工作区的修改
# 如果是在添加到暂存区后的修改,丢弃后和暂存区一模一样。没有添加到暂存区的修改,丢弃后和版本库的一模一样
git restore read01.md
# 丢弃暂存区的修改,暂存区的所有修改就找不到了
git restore --staged read01.md
# 丢弃版本库的修改
git reset --hard HEAD^

11.远程仓库

# 查看配置的远程仓库
git remote -v
# 添加远程仓库
git remote add origin git@github.com:michaelliao/learngit.git
# 如果使用SSH公钥,需要将本地公钥放到GitHub。如果使用用户名和密码,可以设置存储认证,输入一次就可以了
git config credential.helper store
# 推送,origin远程主机名,master本地分支名,master远程分支名,加-u参数会把本地分支和远程分支关联,后续推送拉取可以简化命令
git push -u origin master:master
# 删除远程库,即解除本地与远程库的联系
git remote rm origin
# 克隆远程仓库
git clone git@github.com:michaelliao/learngit.git

12.分支

# 查看分支
git branch
# 创建分支,创建并切换到分支
git branch dev
git switch -c dev
# 切换分支
git switch dev
# 删除分支
git branch -d dev
# 合并分支,合并分支前,要切换回原来的分支
git switch master
git merge dev

参考:廖雪峰Git教程

上一篇:vue axiox网络请求


下一篇:VTP协议