git在日常工作用的比较多,但是总有些不那么常用的命令记不住,所以最近又重新学习了一下大神的git教程,然后记录一下git命令,方便以后查找。
-
工作区 暂存区 版本库 远程仓库
-
git init初始化一个Git仓库 -
git add <file>添加文件到暂存区 -
git commit -m "<message>"记录提交信息到版本库 -
git commit只提交添加到暂存区的修改,不提交文件 -
git status查看状态 -
git diff <file>查看/对比修改的文件 -
git reset --hard commit_id回到历史版本 -
git log查看版本 -
git reflog查看命令记录,确定需要回到未来的哪个版本 -
git checkout --file放弃工作区的修改 -
git reset HEAD file撤销添加文件到暂存区 -
git rm <file>删除版本库中的文件 -
git checkout --file把误删的文件恢复到版本库的最新版本(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”) -
git remote add origin git@server-name:path/repo-name.git关联到远程仓库(关联远程库时必须给远程库指定一个名字,origin是默认习惯命名) -
git remote rm origin删除已有的远程库 -
git push -u origin master首次推送master分支的所有内容 -
git push推动到远程仓库(简化命令) -
git branch查看分支 -git branch <name>创建分支 -
git branch -d <name>删除分支 -
git switch <name>或者git checkout <name>切换分支 -
git switch -c <name>或者git checkout -b <name>创建+切换分支 -
git merge <name>合并指定分支到当前分支;合并分支时通常用的一般是Fast forward模式,这种模式下,删除分支后,会丢掉分支信息;--no-ff表示禁用Fast forward模式,合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并。 -
例如:
git merge --no-ff -m "merge with no-ff" dev本次合并创建一个新的commit,所以加上-m参数,把commit描述写进去。 -
git log --graph查看分支合并图 -
git stash保留当前工作区(可用于当前工作未完成,新建分支修复bug) -
git stash pop回到工作区(bug修复完之后,用这个命令回到工作区) -
git cherry-pick <commit>合并某次提交到当前分支(当多个分支有bug时,这个命令可将修改bug提交的修改“复制”到当前分支,避免重复劳动) -
git branch -d <name>删除分支 -
git branch -D <name>强行删除分支(如果要删除一个没有被合并过的分支用这个命令) -
git remote -v查看远程库信息 -
git pull从远程仓库获取代码 -
git checkout -b branch-name origin/branch-name在本地创建和远程分支对应的分支(分支名最好一致) -
git branch --set-upstream branch-name origin/branch-name建立本地分支和远程分支的关联 -
git tag查看所有标签 -
git tag <tagName>创建一个新的标签;还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:git tag -a v0.1 -m "version 0.1 released" 1094adb -
git show <tagName>查看标签的详细信息 -
git push origin <tagName>推送一个本地标签到远程仓库 -
git push origin --tags推送全部未推送过的本地标签 -
git tag -d <tagName>删除一个本地标签 -
git push origin :refs/tags/<tagName>删除一个远程标签 -
学习链接: www.liaoxuefeng.com/wiki/896043… liaoxuefeng.gitee.io/resource.li…