Git 命令收集

来源:互联网 发布:浙江大数据交易中心 编辑:程序博客网 时间:2024/05/19 16:49
$ git config --global user.name "Your Name"$ git config --global user.email "Email@examloe.com"

解释:设置机器的名字和email地址
注:git config 命令的–global 参数,表示本机所有的git仓库均使用这个配置。

$ mkdir learngit$ cd learngit$ pwd

解释:
创建一个空目录
进入目录
显示当前目录

$ git init

解释:初始化仓库,即将当前目录变为git可以管理的仓库

$ git add filename

解释:将文件提交到暂存区

$ git commit -m "description

解释:将文件提交到仓库。
注:-m 后面输入的是本次提交的说明。
可以多次add,一次commit

$ git status

解释:查看文件的各种状态,让我们可以时刻掌握仓库当前的状态

$ git diff filename$ git diff HEAD --readme.txt

解释:
1、查看未add到暂存区的文件修改,add后命令就查不出了。
2、可以查看工作区与版本库里最新版本的区别。

$ git log$ git log --pretty=oneline$ git log --pretty=oneline --abbrev-commit

解释:查看提交历史版本
注:–pretty=oneline参数添加后显示完整commit id。
–pretty=oneline –addrev-commit 显示简版的commit id

$ git log --graph

解释:查看分支合并图

$ git reset --hard HEAD^$ git reset --hard HEAD^^$ git reset --hard HEAD~100$ git reset HEAD filename

解释:
1、回退至上一版本
2、回退至上上一版本
3、回退至往上100个版本
4、可以将暂存区的修改撤销,重新放回工作区。

$ git reset --hard 76245692

解释:回退至commit id为76245692版本

$ git reflog

解释:历史命令

$ git checkout --filename

解释:将文件在工作区的修改全部撤销。
注:这里有两种情况:
1、文件自修改后还没有被存放在暂存区,现在,撤销修改就回到和版本库一模一样的状态
2、文件已经添加到了暂存区后,又做了修改,现在,撤销修改就回到添加暂存区后的状态
总之,就是让这个文件回到最近一次git commit 或 git add时的状态。

$ git rm filename$ git commit -m "remove filename"$ git checkout --filename

解释:
删除一个文件
提交到版本库
撤销删除

与GitHub传输

$ ssh-keygen -t rsa -C "youremail@example.com"

解释:创建SSH Key
注:目录下id_rsa 是私钥,不能泄露出去,id_rse.pub是公钥。

$ git remote add origin git@github.com:yourname/tt.git

解释:关联远程库
注:origin为远程库的名字。

$ git push -u origin master$ git push origin master

解释:本地库的所有内容推送到远程库上
注:第一次推送master分支时,要加上-u参数,Git不但会把本地的mater分支推送到远程新的master分支,还会讲远程master分支和本地master分支做关联。在以后推送或拉取时就不用-u参数

$ git push origin dev

解释:将dev分支上的所有本地提交推送到远程库。

$ git push origin <tagname>

解释:可以推送一个本地标签

$ git push origin --tages

解释:可以推送全部未推送过的本地标签

$ git push origin:refs/tags/<tagname>

解释:删除一个远程标签

$ git clone git@github.com:myname/tt.git

解释:将远程库克隆一个本地库

$ git checkout -b dev$ git branch dev$ git checkout dev

解释:
1、创建dev分支并切换到dev分支上
2、创建dev分支
3、切换dev分支

$ git remote -v

解释:查看远程库

$ git checkout -b dev opigin/dev

解释:在本地创建和远程分支对应的分支,本地和远程分支名称最好一致。

$ git branch

解释:查看当前分支
注:此命令会列出所有分支,当前分支前会标*号

$ git branch -d dev

解释:删除dev分支

$ git branch -D <name>

解释:强行删除一个没有被合并过的分支

$ git branch --set-upstream dev origin/dev

指定本地dev分支与远程origit/dev分支链接

$ git merge dev

解释:合并指定分支到当前分支
注:此时使用Fast-forward模式合并。合并后丢失分支信息

$ git merge --no-ff -m "merge with no-ff" dev

解释:合并dev分支,禁用Fast forward
注:此模式,保留分支信息,可用git log看到分支历史

$ git stash

解释:将当前工作现场“储藏”起来。

$ git stash list

解释:储藏的工作现场的列表

$ git stash apply$ git stash drop$ git stash pop$ git stash apply stash@{0}

解释:
1、恢复stash内容,恢复后,stash内容不会删除。
2、删除stash内容
3、恢复的同时把stash内容也删除
4、恢复指定的stash

$ git remote$ git remote -v

解释:查看远程库的信息。加-v后会显示更详细的信息

$ git pull

解释:取回远程主机某个分支的更新,再与本地的指定分支合并。

$ git tag

解释:查看所有标签

$ git tag v1.0

解释:打一个新的标签

$ git tag v0.9 62364561$ git tag -a v0.1 -m "version 0.1 releasd" 362354561$ git tag -s v0.2 -m "signed version 0.2 released" fec145a

解释:指定对应的commit id打标签。
注:-a 指定标签名, -m 指定说明文字
-s 用PGP签名标签

$ git show v0.9

解释:查看标签信息

$ git tag -d <tagename>

解释:可以删除一个本地标签