git
查看当前系统是否安装有git版本管理工具
git log
查看提交历史。如果想简化显示,可以加上 --pretty=oneline,git log --pretty=oneline
git status
查看当前版本库的状态
git remote
查看远程分支信息,参数-v可以查看详细信息
git config --global user.name “your name”
设置全局版本库的用户名
git config --global user.email “your email”
设置全局版本库的邮件地址。因为git是分布式版本管理工具,所以使用前需要自报家门
git init
在需要创建版本库的位置打开命令行,执行上述命令就可以把当前目录变为Git可以管理的版本库
git add
向暂存区添加文件,add后面可以跟多个文件一次提交到暂存区
git commit -m “注释”
向本地库添加文件。git add之后文件只是进入了暂存区,只有执行git commit之后文件才会进入本地库
git reset --hard HEAD^
将当前版本回退到上一个版本,如果是上上版本,则为HEAD^^,一次类推。同时,由于reset命令是加上hard参数会将最新的提交给抹除,所以如果想回退的话,需要使用下一条命令查看历史提交记录,并用git reset --hard “想回退的版本号”来回到想回到的位置
git reflog
用来查看每一次提交的历史,与上一条指令配合,可以进入想进入的版本
git diff HEAD – file-name
用来查看当前文件工作区和版本库的区别
git checkout – file-name
丢弃工作区的修改,注意此处是由**–**,如果没有的话就是切换到另一个分支
git reset HEAD file-name
用来撤销暂存区的修改
git rm file-name
删除文件,此命令是从工作区和暂存区删除。如果想要彻底删除当前文件,这在这条命令之后再执行git commit -m note,提交过后,版本库中对应的也就删除了,如果想要删除远程仓库的文件,还需要执行git push
git remote add origin url
将本地仓库与远程仓库关联
git push -u master
将当前分支推送到远程master分支并与master分支关联。第一次提交的时候加上-u参数即可,后续推送执行git push orgin master命令即可
git clone url
从远程仓库克隆一个到本地
git checkout -b dev
创建并切换到dev分支。此条命令相当于git branch dev和git checkout dev
git branch
查看当前分支,*所在即为当前分支
git checkout branchname
切换到bracnhname分支
git merge branchname
合并branchname分支到当前分支
git branch -d branchname
删除branchname分支,参数-D可以强行删除一个没有被合并过的分支
git switch -c branchname
创建并切换到branchname分支。switch命令是最新的git版本提供的命令,用来切换分支,防止为checkout混淆。切换到已有分支用git switch命令即可
git log --graph
查看分支合并图
git stash
暂存工作区内容,等以后恢复后可以接着工作,类似游戏中存档。
git stash list
查看保存的工作区现场
git stash apply
恢复保存的工作区现场,该命令执行后并不删除stash的内容,之后执行git stash drop来删除。也可以使用git stash pop,此命令在恢复工作区的同时也将删除保存的内容。
git stash apply stash@{0}
如果保存了多个工作区现场,可以先试用git stash list查看保存的所有工作区,然后使用上个命令恢复到指定的工作区版本
git cherry -pick
如果在master分支上紧急修复了线上故障,可以使用此命令将bug修复的当次提交应用到当前分支,注意要先切换到想修复bug的分支
git rebase
多人协作的项目,分支合并图可能看起来很乱,此命令是用来满足强迫症的需求,能让分支合并图成为一条线。话说对我有个卵用,我有无所谓
git tag v1.0
打标签,同时用git tag可以查看所有标签。如果对指定版本号的打标签可以先执行git log --pretty=oneline --abbrev-commit查看所有提交信息,然后使用git tag 版本号 commitID来对指定的版本打上标签