git 常用命令
参数
-m
表示对这个命令的概述,方便之后查看
显示当前目录: pwd
把这个目录变成Git可以管理的仓库: git init
查看版本:git log
可加上
--pretty=oneline
把每次提交放在一行显示
回退版本:git reset --hard
+ 版本号
版本号写前几位即可,也不可太短,建议4-6位
或者可:git reset --hard
+ HEAD^
HEAD为上个版本,HEAD^为上上个版本,太多就写HEAD~n
查看命令历史:git reflog
添加文件:git add file
实际上就是把文件修改添加到暂存区
提交更改:git commit -m message
实际上就是把暂存区的所有内容提交到当前分支,后面参数代表这次改动的描述,正常必须加,个人建议养成习惯
查看状态:git status
查看当前分支状态
查看不同:git diff
撤销更改:
-
丢弃工作区的修改:
git checkout -- file
作用:用版本库里的版本替换工作区的版本
-
添加到了暂存区时,想丢弃修改:
git reset HEAD file
再执行第一步git checkout -- file
git reset HEAD file
作用:把暂存区的修改撤销掉,重新放回工作区 -
提交了不合适的修改到版本库,直接回退版本即可
删除文件:git rm file
分支命令
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout branch_name
或者git switch branch_name
创建+切换分支:git checkout -b branch_name
或者git switch -c branch_name
合并某分支到当前分支:git merge branch_name
删除分支:git branch -d branch_name
如果分支还没有被合并,要强行删除的话,需要使用大写的
-D
参数。
查看分支合并图:git log --graph
合并分支时,加上
--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。
当手头工作没完成,但要帮别人修改bug时可以这样:
存储工作进度:git stash
类似游戏中的存档
查看存储的工作进度:git stash list
恢复存储的工作进度:
类似游戏中的读档
-
git stash apply
但这样恢复不会把存储的工作进度一起删了,还需要
git stash drop
来删除保存的工作进度 -
git stash pop
在恢复存储的工作进度后将其删除
如果是你的文件也有这个bug的时候,可以直接复制修改bug时的请求进行提交即可
复制一个特定的提交到当前分支:git cherry-pick
+ 提交的编号
跟版本号一样,写前几位即可
查看远程库的信息:git remote
git remote -v
显示更详细的信息
推送分支到远程库:git push origin branch_name
抓取远程的新提交:git pull
标签管理(默认标签是打在最新提交的commit上)
也可以
-a
指定标签名,-m
指定说明文字
给当前分支打上标签:git tag tag_name
对某个提交打上标签:git tag tag_name commit_id
查看所有标签: git tag
查看标签信息:git show tag_name
删除一个本地标签:git tag -d tag_name
删除一个远程标签:git push origin :refs/tags/tag_name
推送一个本地标签:git push origin tag_name
推送全部未推送过的本地标签:git push origin --tags
配置别名:
git config --global alias.别名 原名词
,也可将字符串定义别名git config --global alias.别名 '字符串'
配置status别名为st:git config --global alias.st status
即输入 st 等于输入 status 例如
git st
=>git status
如果怕提交完忘了别名,或者要删除别名,可去目录下的.gitconfig文件中删除,其中alias即为别名配置
忘了目录的童鞋输入 pwd 即可