git clone git@gitlab.liyupei.cn:root/test1.git #从Gitlab上clone项目
cd test1
git add test1.txt #将test1.txt添加到仓库,等待提交
git commit -m "This is a test" #将test1.txt提交到本地仓库
git pull origin master #拉取远程master分支到本地
git rm aaa #从工作区删除文件aaa
git branch #列出所有分支
git checkout master #切换到master分支
git branch dev #新建dev分支
git checkout -b dev2 #新建并切换到dev2分支
git checkout -b newbranch tagv1 #在Tag为tagv1的版本上新建一个名为newbranch的分支
git branch -d dev2 #删除dev2分支
git branch -D dev2 #强制删除dev2分支
git merge dev2 #将dev2分支合并到当前分支(默认使用Fast Forward模式)
git merge --no-ff -m 'message' dev2 #将dev2分支合并到当前分支(禁用Fast Forward模式,会在merge时生成一个新的commit,从分支历史上可以看到分支信息)
git remote add origin git@gitlab.liyupei.cn:root/test1.git #关联远程仓库,并创建master分支(首次push之前操作)
git branch --set-upstream-to=origin/dev dev #关联本地分支和远程分支
git push -u origin master #将文件同步到远程Gitlab服务器上(首次push需加-u,以后可以直接git push)
git push origin --delete lyp1 #删除远程分支lyp1
git diff #比较做了哪些修改(比较工作区和暂存区)
git diff --cached #比较做了哪些修改(比较版本库和暂存区)
git diff HEAD #比较做了哪些修改(比较工作区和版本库)
git stash #隐藏当前修改的操作
git stash list #显示所有隐藏
git stash pop #取消隐藏,继续修改操作
git stash drop #丢弃隐藏中的变更
git remote #查看远程仓库的信息(-v参数显示更详细的远程仓库信息)
git remote rm origin #删除远程origin仓库
git checkout -b branch-name origin/branch-name #在本地创建和远程分支对应的分支(不清楚应用场景)
git rebase #将本地未push的分支提交历史整理成直线
git tag tag1 #当前分支的当前提交打个tag1的标签
git tag tag2 e5858b9 #当前分支的历史提交打个tag2的标签
(后面的e5858b9是历史的commit_id,可由git log --graph --pretty=oneline --abbrev-commit此命令获取commit_id)
git show tag_name #查看tag_name标签的信息
git tab -d tag_name #删除本地标签tag_name
git push origin :refs/tags/tag_name #删除远程标签tag_name
git push origin tag_name #将tag_name标签推送到远程
git push origin --tags #将所有标签推送到远程
git log --pretty=oneline #仅显示commit日志
git log --pretty=oneline --abbrev-commit #显示缩写的commit日志
git log --graph --pretty=oneline --abbrev-commit #查看分支历史
git config --global alias.st status #设置别名
git config --global color.ui true #显示颜色,让结果显示不同的颜色
git config --global user.name "[name]" #设置提交者名
git config --global user.email "[email address]" #设置提交者邮箱
git回退相关命令(适合当前本地仓库):
git log #显示最近到最远的commit日志
HEAD #表示当前版本
HEAD^ #表示上一个版本
HEAD^^ #表示上上一个版本
HEAD~100 #表示往上100个版本
git reset --hard HEAD^ #回退到上个版本
git reset --hard 1094a #回退到某个版本(后面的1094a表示commit_id)
git reflog #显示所有分支的所有操作记录(包括已删除的commit记录和reset记录)
git reset 参数:
--mixed #默认选项,保留源码,只是暂存区改变回退
--soft #暂存区和工作区都不会被改变,只回退commit信息
--hard #彻底回退,暂存区和工作区都改变回退
git checkout -- testfile #把testfile在工作区的修改全部撤销(即修改但未add的会被撤回,保证和暂存区一致)