git常用命令

git操作首先推荐使用sourcetree一款很好的可视化工具,但是某些时候还是需要自己操作命令的,毕竟没有工具的是也是需要熟练操作的😁

--soft 将本地撤回点之后的所有修改文件回退到git暂存区
--mixed 将本地撤回点之后的所有修改文件修改回退到工作区(回退的默认方式)
--hard 将本地撤回点之后的所有修改文件做删除操作
同样为撤销操作的git reset 和 git revert:
    git reset,它不会改变现在的提交历史
    Revert撤销一个提交的同时会创建一个新的提交。
因此,git revert可以用在公共分支上,git reset应该用在私有分支上。

查看、添加、提交、删除、找回,重置修改文件

Git常用命令 命令释义
git help 显示command的help
git show $id 显示某次提交的内容(不加id显示最近一次)
git checkout – file 抛弃文件工作区修改
git checkout . 抛弃所有工作区修改(add .到git暂存区的不能取消)
git add file 将工作文件修改添加到git暂存区
git add . 将所有修改过的添加到git暂存区
git reset file 从git暂存区恢复到工作区
git reset – . 从git暂存区(add . 到达的区域)恢复全部到工作区
git reset –hard 删除所有git暂存区的文件修改,也不会在工作区保留,慎用啊!!
git reset HEAD^ 回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式 或者 git reset commit-id,将上个版本所有的修改回退到工作区
git reset commit-id 删除所有git暂存区的文件修改,也不会在工作区保留,慎用啊!!
git commit -m ‘xxx’ 将git暂存区提交到history,然后才能从history push到线上
git commit -am ‘xxx’ 等于git add . + git commit -m ‘xx’
git revert HEAD 放弃当前commit所有修改,撤销到前一次 commit内容 到 git暂存区(撤销也会作为一次提交进行保存。)
git revert HEAD~1 撤销前前一次 commit
git revert commit_id 比如:(git revert fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,
git rm file 从版本库中删除文件

查看文件diff

命令 释义
git diff 比较当前文件和暂存区文件差异 git diff
git diff commit_id 显示某次提交的的diff
git diff branch1..branch2 在两个分支之间比较
git diff –stat 仅仅比较统计信息

查看提交记录

命令 释义
git log file 查看该文件每次提交记录
git log -p 查看每次详细修改内容的diff
git log -p -2 查看最近两次详细修改内容的diff
git log –stat 查看提交统计信息

Git本地分支管理

查看、切换、创建和删除分支
命令 释义
git branch -r 查看远程分支 /a 全部分支
git branch -v 查看各个分支最后提交信息
git checkout -b xx_branch 创建新的分支,并且切换过去
git branch new_branch 创建新的分支
git checkout xx_branch 切换到某个分支,没有该分支则以本分支创建一个(本地修改也会一起切换到对应分支)
git checkout -b new_branch branch 基于branch创建新的new_branch
git checkout $id 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删(主要还是用来查看旧版本信息为主)
git checkout $id -b new_branch 把某次历史提交记录checkout出来,创建成一个分支
git branch -d xx_branch 删除某个分支
git branch -D 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
git push origin :remote_branch 删除远程分支
分支合并和rebase
命令 释义
git merge xxx_branch 将xxx_branch分支合并到当前分支
git merge origin/master –no-ff 不要Fast-Foward合并,这样可以生成merge提交
git cherry-pick commitid 把指定commitid的变动合并到当前分支

Git暂存管理

命令 释义
git stash(git stash create ‘名字’) 本地暂存区暂存,当一个分支未开发完成又不想commit的时候,是不能切换到其他分支的,除非把改动的文件进行暂存,切换回来的时候再恢复就行了
git stash list 列所有stash本地暂存区
git stash apply 恢复本地暂存区的内容(恢复到工作副本)
git stash drop 删除本地暂存区

Git远程分支管理

命令 释义
git pull 抓取远程仓库所有分支更新并合并到本地
git pull –no-ff 不要快进合并(Create a merge commit)
git merge origin/master 将远程主分支合并到本地当前分支
git checkout –track origin/master 检出远程分支到本地
git checkout -b local_branch origin/remote_branch 基于远程分支创建本地分支,并切换到新建分支
git push push所有分支
git push origin master 将本地主分支推到(已跟踪的)远程主分支
git push origin HEAD:master 不同分支之间提交(未跟踪)比如 test->develop
git push origin local_branch 创建远程分支并推送到该分支, local_branch是远程仓库名

Git远程仓库管理

命令释义
git remote -v查看远程服务器地址和仓库名称
git remote show origin查看远程服务器仓库状态
git remote add origin git@github:robbin/robbin_site.git添加远程仓库地址
git remote set-url origin git@github.com:robbin/robbin_site.git设置远程仓库地址(用于修改远程仓库地址)
git remote rm删除远程仓库
git push -u origin master首次将本地分支提交到远程master分支,”-u”是首次提交需要增加追踪(track),-u后以后提交到该分支的远程只需要git push,否则需要git push origin xxx
git remote set-head origin master设置远程仓库的HEAD指向master分支(可以用checkout直接切换)

OVER