Git常用命令总结

293 阅读3分钟

1、Git基本命令

  • 初始化 / 查看状态 / 查看日志

    git init 初始化版本库

    git status 查看当前仓库状态

    git log 查看历史提交日志

    # git log后常用参数
    --oneline	# 一行显示
    --decorate	# 显示出指向提交的指针的名字
    --graph		# 图文并茂
    --author	# 指定作者
    --grep		# 匹配提交信息
    --merge		# 查看合并提交并产生冲突的记录
    --merges	# 查看合并提交
    --no-merges	# 查看非合并提交
    --stat		# 显示修改信息 常结合 -p  一起使用
    --pretty	# 自定义显示内容
    # 推荐一个自定义显示最强的版本, 可配置成命令别名使用
    git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    

    git log 的参数实在是太多了, 有兴趣的同学可以可以看下官方文档: git-scm.com/docs/git-lo…

    git reflog 查看历史记录包含回滚的历史

  • 增 / 提 / 退 / 删 / 撤销

    git add 'file' 添加文件到暂存区

    git commit -m/--amend "提交信息" 提交到仓库, --amend 修改最后一次的提交说明

    git reset --hard commid_id/HEAD^ 回滚到某个版本,HEAD^ 表示上个版本, HEAD~100 表示前面第100个版本

    git rm -f/--cached filename -f 强制删除暂存区和工作区的文件, --cached 只删除暂存区保留工作区

    git checkout --filename 将已修改还未添加到暂存区的文件恢复到版本库一致

    如果已经添加到暂存区还未提交版本库 先 git reset HEAD filename 再执行 git checkout --filename

    如果已经提交版本库, 才有版本回退方法

  • 版本对比

    git diff filename 查看文件修改内容

    git diff commit_id1 commit_id2 对比两个提交版本的差异

    git diff --cached 对比暂存区和当前仓库快照的差异

    git diff commit_id 对比当前目录和commit_id版本的差异

  • 分支

    git branch 查看分支

    git show <branch-name/tag-name> 查看分支信息

    git branch branch_name 创建一个分支

    git checkout branch_name 切换分支

    git checkout -b branch_name 创建一个分支并切换到此分支

    git merge branch_name 合并分支到当前分支

    合并分支时候, --no-ff 参数采用普通模式合并, 合并后的历史有分支, 能看出来曾今做过分支, 而fast forward合并看不出来增曾经做过合并

    git branch -d branch_name 删除一个分支

    git branch -D branch_name 强制删除一个没有被合并的分支

  • 标签管理

    git tag 查看所有的tag

    git tag tag_name 创建一个tag(在当HEAD上)

    git tag tag_name commit_id 为历史版本创建tag

    git tag -a tag_name -m "描述" commid_id 创建一个带描述的tag

    git tag -d tag_name 删除一个tag

    git push origin tag_name 推送tag到远程仓库

    git push origin --tags 推送所有未推送过的tag

    git push origin :refs/tag_name 从远程仓库删除tag, 先在本地删除再执行push

  • 暂存

    git stash 暂存工作现场

    git stash pop 回到工作现场

    git stash list 查看所有暂存记录

    git stash clear 清空所有暂存记录

2、远程仓库

  • 仓库相关

    git remote -v 查看本地关联了哪些远程仓库

    git clone 仓库地址 克隆远程仓库到本地

    git remote add origin 远程仓库地址 创建一个本地仓库名关联远程仓库地址(origin为本地仓库名)

    git push (-u) origin 分支名 推送本地仓库到远程 第一次推送时要加 -u 参数

    git pull origin 分支名 拉取远程仓库到本地

    git remote rm 仓库名 移除关联

  • 分支相关

    git fetch origin master 远程库上的master分支代码拉取到本地,暂不合并(需要调用merge命令进行合并)

    git checkout -b origin/ 在本地创建和远程分支对应的分支

    git branch --set-upstream origin/ 建立本地分支和远程分支的关联