本总结基于廖雪峰大神的Git教程,教程上对本总结的指令都有详细的解释,不懂的可以阅读教程,附上地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
前言
git 的每次提交都是基于前一次提交的,也就是是分割式提交,不能删除中间的某次提交的!
正文
git config --global user.name "Your Name"
git config --global user.email "email@example.com" 设置用户名和邮箱git init 初始化仓库
ls -ah 显示当前目录下的所有文件和文件夹,包括隐藏的
git add readme.txt 把readme.txt文件添加到仓库
git add . 把当前目录下的所有文件添加到仓库
git commit -m "add" 把添加了的文件提交到仓库 “add”是本次提交的说明
git log 显示从最近到最远的提交日志
git log --pretty=oneline 精简版git log
git reset --hard HEAD^ 把当前版本回退到上一个版本
git reset --hard HEAD^^ 把当前版本回退到上上一个版本
git reset --hard HEAD~100 把当前版本回退到往上100个版本
git reset --hard 3628164 把当前版本回退到3628164(某个版本的版本号的前几位)
git reflog 查看命令历史,以便确定要回到未来的哪个版本
git diff HEAD -- readme.txt 查看readme.txt文件在工作区和版本库里面最新版本的区别
git checkout -- readme.txt 让readme.txt这个文件回到最近一次git commit或git add时的状态
git reset HEAD readme.txt 把暂存区的修改回退到工作区
git remote add origin git@github.com:michaelliao/learngit.git 把本地仓库与远程库关联(SSH法)
git remote add origin http://github.com/michaelliao/learngit.git 把本地仓库与远程库关联(HTTPs法)
git push -u origin master 当前分支master推送到远程,加上了-u参数,Git还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令 git push origin master
git clone git@github.com:michaelliao/gitskills.git 克隆到本地库 同关联
git checkout -b dev 表示创建并切换dev分支,相当于以下两条命令
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git branch 查看分支
git merge dev 用于合并指定分支(dev)到当前分支(如:master)(Fast forward模式)
git branch -d dev 删除dev分支(若未合并就删不了)
git branch -D dev 强行删除dev分支
git merge --no-ff -m "merge with no-ff" dev 禁用Fast forward模式的提交,Git就会在merge时生成一个新的commit,"merge with no-ff"是提交信息
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看当前分支的工作现场
git stash drop 删除工作现场
git stash apply stash@{0} 恢复stash@{0}的工作现场
git log --graph --pretty=oneline --abbrev-commit 查看分支的合并情况
git log --graph 看到分支合并图
git remote 查看远程库的信息
git remote -v 显示更详细的信息
git checkout -b dev origin/dev 创建远程origin的dev分支到本地
git branch --set-upstream dev origin/dev 设置dev和origin/dev的链接
git pull 把和当前分支绑定的远程分支上的代码更新下来
其它
git branch -a 查看远程分支
git rebase -i HEAD~2 合并两个提交 https://www.cnblogs.com/tocy/p/git-rebase-merge-commit.html
http://www.jianshu.com/p/964de879904a
git commit --amend -m "重写" 修正最后一个 commit 消息为"重写"
git reset HEAD 取消缓存区的修改
git reset commit_id 完成Commit命令的撤销,但是不对代码修改进行撤销
git fetch 更新remote索引,当远程的东西不同步时,类似刷新
git push origin --delete dev 删除远程分支dev
git show commit_id 根据commit id查看该提交具体修改了什么
查看远程分支提交信息:1.使用fetch命令,将远程分支dev拉下来(不更新)
git fetch origin dev
2.切换到远程分支dev
git checkout origin/dev