Git版本控制指令
Git功能区分配: 工作区、暂存区、Git仓库
配置指令
git config --list #显示当前git环境配置
git config user.name #显示user.name变量值
git config global user.name "name" #设置用户名为name
常用指令
个人建立仓库
mkdir git_example
cd git_example
vim example.txt
git init #初始化仓库
git add example.txt #将文件加入到暂存区
git commit -m "First commit" #将暂存区中的数据提交到仓库
从网络拉取仓库
git clone "url(远程残酷地址)" dir #克隆远程仓库并放置新建的dir目录下,可选择不指定目录
查看当前文件的状态
git status #查看详细的文件状态
git status -s #简洁查看文件状态
显示文件差异
git diff #显示暂存区文件和当前工作区文件的差异
git diff --staged/--cached #显示暂存区文件和仓库文件的差异
移动文件
# 删除file文件步骤
rm file #删除目录中的文件
git rm file #删除暂存区文件
# 删除文件,但是保留文件的修改
git rm --cached file
# 移动文件
git mv file file.1 #修改文件file为file.1
# 移动指令相当于执行下面操作
mv file file.1
git rm file
git add file.1
查看提交历史记录
git log
撤销操作
git commit --amend #将当前暂存区文件的修改一并提交到仓库,并覆盖原来的提交信息
git reset HEAD file #取消对指定文件的暂存
git checkout -- file #撤销对文件的修改
远程仓库操作
git remote -v #列出所有的远程仓库
git remote add <name> <url> #添加远程仓库
git fetch <name> #拉取远程仓库
git push origin <branch_name> #将分支推送到远程分支
git remote rename <old_name> <new_name> #修改添加的远程仓库名
git remote remove <name> #删除添加的远程仓库
git pull #拉取远程仓库对应的当前分支,并进行合并
标签
git tag #列出标签
git tag <tag_name> #将当前分支打标签
git tag -a <tag_name> <hash_code> #指定提交打标签
git push origin <tag_name> #共享标签
git -d <tag_name> #删除当前标签
git push origin --delete <tag_name> #删除远程标签
git checkout <tag_name> #切入标签对应的分支
git checkout -b <tag_name> <branch_name> #通过标签分支创建新分支
分支
git branch <name> #创建新分支
git checkout <name> #切换到新分支
# 以上两条指令和下面一条指令等效
git checkout -b <name> #创建新分支,并切换到新分支
git merge <branch> #将指定分支合并到当前分支
git branch -d <branch> #删除分支
git branch -a #查看当前所有分支名称
#远程分支一般操作
git fetch
git merge
git push
变基合并
git checkout <target_branch>
git rebase master
git checkout master
git merge <target_branch>
子模块
git submodule add <url> <path_name> #将子模块仓库放到指定路径,路径可选,否则存储再仓库根目录下
git submodule init #初始化本地子模块配置文件
git submodule update #拉去子模块,并检出该分支对应的子模块分支
#快捷检出子模块指令
git clone --recurse-submodules <url>
git submodule update --init --recursive #快速初始化子模块,拉取子模块并检出子模块