Git

init

git init    创建 

clone

git clone git@server-name:path/repo-name.git    克隆远程仓库到本地当前目录下

git clone --depth=1      clone远程仓库到本地directory目录下 --depth=1:深度为1

git clone -b  --depth=1      clone指定远程分支到本地当前目录下

pull

git pull  :     将远程仓库分支中的更改合到本地分支中

git pull      与当前分支合

git pull --rebase  :   合并需要采用rebase模式

git pull origin master --allow-unrelated-histories    第一次从远程拉取更新 

push

git push  :    推送本地分支到远程分支上

git push origin master    将本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。

git push  :    删除远程分支

git push origin :master    如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支

git push -u origin master    如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用 git push 。
git push origin     推送标签

git push origin --tags    一次推送本地全部标签

git push origin :    删除远程标签 

git push origin :refs/tags/    删除一个远程标签(先把本地的删除 git tag -d )

checkout

git checkout -b  /    跟踪远程分支

git checkout     切换分支 

git checkout -b     -b 创建并切换分支 
git checkout --     撤销工作区的全部修改,是文件回到最近一次 git commit 或 git add 时的状态。  

branch

git branch ([-r | -a])           查看本地分支 -r:查看远程分支 -a:查看全部分支

git branch     创建分支 

git branch -d     删除本地分支 

git branch -D     强行删除一个没有合并过的分支 

git branch --set-upstream  /    创建本地分支和远程分支的链接关系 

merge

git merge     合并指定分支到当前分支 

git merge --no-ff -m 'message'     合并分支,禁用Fast forward模式,创建一个新的commit。

tag

git tag    查看标签

git tag  ()    创建标签(指定一个commit-id) 

git tag -a      后期加注标签

git tag -a  -m 'message'    指定标签信息 

git tag -s  -m 'message'    用PGP签名标签 

git tag -d     删除标签 

git show     查看标签信息 

stash

git stash    保存当前工作现场 

git stash list    查看保存的工作现场 

git stash apply    恢复工作现场,stash 内容并不删除,用 git stash drop 来删除 

git stash apply stash@{0}    恢复指定的 stash 

git stash pop    恢复的同时把 stash 内容也删了 

reset

HEAD: 指的是当前分支最末梢最新的一个提交,也就是版本库中该分支上的最新版本。

HEAD^: 指向 HEAD 之前最近的一次提交。

ORIG_HEAD: 执行 git reset 命令时,git 会把老的 HEAD 拷贝到文件 .git/ORIG_HEAD 中,在命令中可以使用 ORIG_HEAD 引用这个提交。
           执行 git pull 和 git merge 操作时,git 都会把执行操作前的 HEAD 放入 ORIG_HEAD 中,以防回滚操作。    
git reset | git reset HEAD     暂存区 -> 工作区

git reset --hard HEAD^(commit)    退回上一个(或指定的commit)版本 

git reset --hard HEAD    清除工作区和暂存区

git reset --soft HEAD^    回到暂存区状态,工作区还跟 reset 之前一样,不作任何改变。

git reset --merge ORIG_HEAD    避免在回滚时清除工作区

如果还没 git add , 使用该指令进行撤销: git checkout --     清除工作区

git tag start
git reset --keep start(commit)    保留工作区并丢弃一些之前的提交,把在 start(commit) 之后的提交清除掉,但是保持工作区不变。

revert

git revert 撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交。

git revert HEAD     撤消了上次提交

git revert HEAD^    撤消上上次(next-to-last)的提交

commit

git commit -m "message"    提交到当前分支 

git commit --amend    改写提交 --amend: 修改刚才的这个提交 (HEAD commit)。

other

git add             添加到暂存区 

git status          查看状态 

git log             查看提交记录 

git reflog          查看操作记录 

git diff            查看不同 

git rm        删除文件 

git remote (-v)     查看远程仓库(-v: 显示详细信息) 

git remote add origin git@server-name:path/repo-name.git    添加远程仓库

git log --graph (--pretty=oneline --abbrev-commit)    查看分支合并图 

git check-ignore -v     找出 .gitignore 文件里哪个规则忽略了该文件 

git config —global alias.st status    配置别名 git st == git status
 
git rebase -i    会提示你在编辑中做相关的修改,这样其实就是让你在rebase的过程来修改提交。

你可能感兴趣的:(Git)