Git 命令

2018-11-30

Linux

创建版本库
$ git clone <url>                  #克隆远程版本库
$ git init                         #初始化本地版本库
修改和提交
$ git status                       #查看状态
$ git diff                         #查看变更内容
$ git add .                        #跟踪所有改动过的文件
$ git add <file>                   #跟踪指定的文件
$ git mv <old><new>                #文件改名
$ git rm<file>                     #删除文件
$ git rm --cached<file>            #停止跟踪文件但不删除
$ git commit -m "commit messages"  #提交所有更新过的文件
$ git commit --amend               #修改最后一次改动
查看提交历史
$ git log                    #查看提交历史
$ git log -p <file>          #查看指定文件的提交历史
$ git blame <file>           #以列表方式查看指定文件的提交历史
撤销
$ git reset --hard HEAD      #撤销工作目录中所有未提交文件的修改内容
$ git checkout HEAD <file>   #撤销指定的未提交文件的修改内容
$ git revert <commit>        #撤销指定的提交
$ git log --before="1 days"  #退回到之前1天的版本
分支与标签
$ git branch                   #显示所有本地分支
$ git checkout <branch/tag>    #切换到指定分支和标签
$ git branch <new-branch>      #创建新分支
$ git branch -d <branch>       #删除本地分支
$ git tag                      #列出所有本地标签
$ git tag <tagname>            #基于最新提交创建标签
$ git tag -d <tagname>         #删除标签
合并与衍合
$ git merge <branch>        #合并指定分支到当前分支
$ git rebase <branch>       #衍合指定分支到当前分支
远程操作
$ git remote -v                   #查看远程版本库信息
$ git remote show <remote>        #查看指定远程版本库信息
$ git remote add <remote> <url>   #添加远程版本库
$ git fetch <remote>              #从远程库获取代码
$ git pull <remote> <branch>      #下载代码及快速合并
$ git push <remote> <branch>      #上传代码及快速合并
$ git push <remote> :<branch/tag-name>  #删除远程分支或标签
$ git push --tags                       #上传所有标签

success info(coding)

➜  workspace git:(master) ✗ git pull
fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
➜  workspace git:(master) ✗ git pull master master
From git.dev.tencent.com:honghuhu/aurora
 * branch            master     -> FETCH_HEAD
Already up-to-date.
➜  workspace git:(master) ✗ git remote add origin git@git.dev.tencent.com:honghuhu/aurora.git
➜  workspace git:(master) ✗ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

➜  workspace git:(master) ✗ git push --set-upstream origin master
Branch master set up to track remote branch master from origin.
Everything up-to-date

success info (本地)

☁  aurora [master] git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=master/<branch> master

☁  aurora [master] git remote
master
☁  aurora [master] git remote rm master 
☁  aurora [master] git remote add origin  git@git.dev.tencent.com:honghuhu/aurora.git
☁  aurora [master] git pull
From git.dev.tencent.com:honghuhu/aurora
 * [new branch]      master     -> origin/master
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master

☁  aurora [master] git push --set-upstream origin master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Everything up-to-date
☁  aurora [master] git pull
Already up to date.
☁  aurora [master] git push
Everything up-to-date