Skip to content

git常用命令

整理常用的一些git命令

基础命令

shell
# 查看当前提交状态
git status
# 添加文件到暂存区
git add [file1] [file2]
# 添加指定文件夹到暂存区
git add [folder]
# 添加所有文件到暂存区
git add -A
# 提交代码到本地仓库
git commit -m [message]
# 提交指定文件到本地仓库
git commit [file1] [file2] -m [message]
# 提交时显示所有diff信息
git commit -v
# 显示暂存区和工作区的差异
git diff
# 查看提交日志
git log

初始化代码库

shell
# 在当前目录下初始化代码库
git init
# 在指定目录下初始化代码库
git init [project-name]
# 远程拉取代码库
git clone [url]
# 远程拉取代码库并指定目录
git clone [url] [project-name]

远程同步仓库

shell
# 显示所有的远程仓库
git remote -v
# 添加远程仓库
git remote add [shortname] [url]
# 删除远程仓库
git remote rm [shortname]
# 重命名远程仓库
git remote rename [old-name] [new-name]
# 多远程仓库同步
git remote set-url --add [remote-name] [new-url]
# 拉取远程仓库所有变动
git fetch [remote]
# 拉取远程仓库指定分支所有变动
git fetch [remote] [branch]
# 拉取当前绑定的远程分支的代码
git pull
# 拉取指定远程分支的代码
git pull [remote] [branch]
# 推送当前分支到远程仓库
git push [remote] [branch]
# 推送所有分支到远程仓库
git push --all [remote]
# 强制推送当前分支到远程仓库
git push --force [remote] [branch]
# 强制推送所有分支到远程仓库
git push --force --all [remote]

分支管理

shell
# 显示所有分支
git branch -a
# 显示本地分支
git branch
# 显示远程分支
git branch -r
# 创建分支
git branch [name]
# 新建一个分支并关联远程分支
git branch --track [branch] [remote-branch]
# 本地分支推送到远程仓库
git push origin [branch]
# 创建并切换到分支
git checkout -b [name]
# 切换并创建分支
git switch -c [name]
# 切换分支
git checkout [name]
# 切换分支
git switch [name]
# 删除本地分支
git branch -d [name]
# 删除远程分支
git push origin --delete [name]
# OR
git branch -dr [remote/branch]
# 修改分支名
git branch -m [old-name] [new-name]
# 修改当前分支名
git branch -m [new-name]
# 创建本地分支和远程分支的关联关系
git branch --set-upstream-to=[remote]/[branch] [local]
# OR
git branch --set-upstream [branch] [remote-branch]
# 通过push创建本地分支和远程分支的关联关系
git push -u [remote] [branch]

代码合并和回退

shell
# 合并指定分支到当前分支
git merge [branch]
# 选择一个commit合并到当前分支
git cherry-pick [commitHash]
# 回退到指定版本
git reset --hard [commitHash]
# 回退当前修改未提交到暂存区的文件
git checkout -- [file]
# 回退当前修改未提交到暂存区的所有文件
git checkout -- .
# 回退当前修改未提交到暂存区的指定文件夹
git checkout -- [folder]
# 已经提交到暂存区的代码退到未提交状态
git reset HEAD [file]
# 删除已经提交到暂存区的文件
git rm [file1] [file2]

保存到栈

功能应用场景:

当你在开发一个新功能的时候,突然有一个bug需要修复,这个时候你可以把当前的工作保存到栈中,然后切换到bug分支进行修复,修复完成后再切换回来继续开发新功能。

shell
# 保存当前工作到栈中
git stash
# 给当前工作保存到栈中并添加备注
git stash save "message"
# 查看栈中的工作
git stash list
# 恢复栈中的工作
git stash pop
# 恢复栈中的指定工作
git stash pop stash@{0} # 0表示栈中的第一个工作
# 将堆栈中的内容恢复到当前分支,与pop不同的是,它不会删除栈中的内容,你能够多次恢复到当前工作的目录
git stash apply
# 恢复栈中指定的工作
git stash apply stash@{0} # 0表示栈中的第一个工作
# 删除栈中的工作
git stash drop
# 删除栈中指定的工作
git stash drop stash@{0} # 0表示栈中的第一个工作
# 清空栈中的工作
git stash clear
# 查看堆栈中最新保存的工作和当前目录的差异,show默认显示第一个存储
git stash show

标记

shell
# 列出所有标记
git tag
# 创建标记
git tag [name]
# 创建带备注的标记
git tag -a [name] -m "message"
# 删除标记
git tag -d [name]
# 删除远程标记
git push origin :refs/tags/[name]
# 查看标记日志
git show [name]



Released under the MIT License.