git-常用语句整理

102 阅读3分钟

一、git 原理简单介绍

详细原理可参考廖雪峰的博客,其中,关于工作区、暂存区的理解非常关键,理解它对后面理解 git 的提交、回退动作非常有帮助。

在这里插入图片描述 工作区:通过 git add 添加的,参与状态跟踪的文件 暂存区:通过commit 提交的文件和版本 HEAD:git 通过commit ID 管理版本,通过HEAD “指针”管理当前版本的位置。commit之后,HEAD 会移动到下一个提交位置 在这里插入图片描述 (图片来源:图解Git

二、常用语句整理

指令类型指令作用
基本git clone github…从远程仓库拉取代码
git commit -m "msg"提交修改过的文件到commit 区域
git status查看暂存区的文件
git add -u提交工作区中有修改过的文件(非工作区中的文件不受影响,比如ignore文件)
git add -A将所有文件添加到工作区(非工作区中的文件不受影响)
git push origin master提交代码到远程分支
git pull origin master拉取代码
git stash(pull冲突后)暂存本地和远程分支冲突的代码
git stash list查看本地stash 的记录
git stash show -p stash号查看stash 文件内容
git stash pop(重新pull后)恢复stash 的文件内容
git stash mergetool拉(stash pop 依然冲突后)使用merge 工具解决冲突(win: tortoisegit;mac: kdiff)
git stash drop(解决代码冲突后)丢弃stash区的所有内容
git fetch origin master:tmp拉取代码到本地的临时分支tmp
TAGgit checkout tags/tagname (--force)切换到指定tag
git tag -a v1.0.0 -m "msg" commitID打tag
git push origin --tags提交所有tag
git tag -d tagName删除tag
git push origin --delete tagName提交删除tag 的操作
查看git remote show origin查看项目地址
git show (commitID)查看最近一次提交的详细信息
git log (HEAD)查看项目提交记录
git diff -cached/staged (commitID)查看head和上次commit之间的差异
git diff commitID..HEAD查看指定commit 和当前工作区代码的差异
git branch (-r)查看本地(远程)的所有分支名称,以及HEAD所在分支
git log -p -n查看最近n次的提交记录
分支git checkout (-b) branchName本地创建/切换分支
git push origin branchName提交新分支
请在页面操作,建议填上审批人、提交后删除原分支提交分支合并请求(MR)
git branch -d branchName本地删除分支
git merge master --no-ff --no-commit合并分支master--->develop,no fastforward(fastword 将不会创建merge commit,不建议 - #)
恢复git reset --soft HEAD~1撤销commit(文件不回退)
git reset --soft commitIDHEAD回退到指定版本(文件不回退,工作区、暂存区均不变)
git reset --soft origin/masterHEAD回退到远程分支版本
git checkout commit_branch filename回退未commit文件到上一次提交版本
git checkout HEAD~0/commitID filename回退指定文件到指定版本
git reset --hard commitID/tagName【注意】所有代码回退到指定版本,HEAD(丢失commit)
git revert commitID【注意】所有代码回退到指定版本,HEAD向后移动(把回退动作当作commit并提交)
清理git reset HEAD pathOfFile将文件从工作区移除。不过还是建议通过.gitignore 实现