git1.md

Git命令总结

目录:

命令总结

$ git config –global user.name “Your Name”

  • 设置全局用户名。

$ git config –global user.name

  • 查询用户名。

$ git config –global user.email “Your Email”

  • 设置全局邮箱。

$ git config –global user.email

  • 查询邮箱。

$ git config –list

  • 检查已有的配置信息。

$ git config –global alias.st status

  • 用st表示status。

$ mkdir gitReporitory

  • mkdir命令是用来创建文件夹的,这里创建一个叫gitreporitory的文件夹。

$ cd gitReporitory

  • 进入gitReporitory文件夹。

$ pwd

  • 显示当前目录。

$ ls

  • 查看当前项目的所有文件。

$ git init

  • 把这个目录变为Git可以管理的仓库。

$ git add hello.txt

  • 添加文件到git仓库上,其中hello.txt就是要添加的文件。

$ cat hello.txt

  • 查看文件的内容,这里查看hello.txt的内容。

$ cat .git/config

  • 查看Git配置文件。

$ git add .

  • 添加所有文件到git仓库上。

$ git commit -m “first commit”

  • 添加完文件还需要提交到git仓库上,-m后面输入的是本次提交的说明。

$ git status

  • 用于检查本地项目的状态,遇到问题就试试它,会有提示。

$ git diff

  • 可以查看哪里有改动过。

$ git rm hello.txt

  • 删除版本库中的hello.txt文件。

$ rm hello.txt

  • 把工作区中的hello.txt文件删除掉,但版本库中的并没有删除掉。

$ git checkout – hello.txt

  • 假设我们修改了hello.txt文件,但还没git add到暂存区,现在想返回到修改前,可以使用$ git checkout – hello.txt返回到没修改的时候。

$ git reset HEAD hello.txt

  • 假设我们修改了hello.txt文件,并git add到了暂存区,但现在我们发现有错误,需要修改,我们可以使用该命令把添加到暂存区的修改撤销回工作区。

$ git reset HEAD hello.txt加$ git checkout – hello.txt

  • 删除版本库中的hello.txt文件后,没提交前我们还可以通过$ git reset HEAD hello.txt加$ git checkout – hello.txt撤消删除。

$ git log

  • 查看修改记录。

$ git log -1

  • 显示最后一次提交信息。

$ git reflog

  • 查看你的每一次命令。

$ git reset –hard

  • 查看当前版本。

$ git reset –hard HEAD^

  • 回退到上一版本。HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上上一个版本,HEAD~100则为上100个版本。

$ git reset –hard b6db134

  • 其中b6db134是我刚刚回退前版本的commit id的前七位,Git使用SHA-1算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1哈希值,作为指纹字符串,由40个十六进制字符组成,但这里我们用前7位就好了,Git会自动寻找出来的。

$ git help

  • 查看帮助文档。

$ git help add -查看add命令的使用。

$ git branch

  • 查看当前项目所有分支。

$ git branch one

  • 创建一个one分支。

$ git checkout one

  • 切换到one分支。

$ git checkout -b two

  • 创建并切换到two分支。

$ git checkout -b one origin/one

  • 创建远程origin的one分支到本地。

$ git branch –set-upstream-to=origin/branch-name branch-name

  • 创建本地分支和远程分支的链接关系。

$ git checkout master

  • 切换回master分支。

$ git branch -d one

  • 删除one分支。

$ git merge one

  • 合并one分支到master分支上。

$ git merge –no-ff -m “merge with no-ff” one

  • 合并one分支,–no-ff参数用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

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

  • 用带参数的git log查看分支的合并情况。

$ git stash

  • 保存当前仓库已改变的状态。

$ git stash list

  • 查看保存到哪。

$ git stash apply或$ git stash apply stash@{0}

  • 恢复已保存的状态。

$ git stash drop

  • 删除stash内容。

$ git stash pop

  • 恢复的同时把stash内容也删除。

$ git tag

  • 查看当前所有版本。

$ git tag -a v1.0 -m “这里填相关信息”

  • 为项目版本打个标签。

$ git show v1.0

  • 查看对应版本的相关信息。

$ git clone https://github.com/lcfu1/lcfu1.git

  • 这里是以https的形式下载的,也可以以SSH的格式,如$ git clone git@github.com:lcfu1/lcfu1.git。

$ ssh-keygen -t rsa -b 4096 -C “your_email@example.com”

  • SSH key的配置,your_email@example.com是你注册github的邮箱。

$ ssh -T git@github.com

  • 查看是否添加成功。

$ git remote add origin git@github.com:lcfu1/Git.git -向本地仓库添加一个名为origin,地址为git@github.com:lcfu1/Git.git的远程仓库。

$ git remote -v

  • 查看该项目的远程仓库。

$ git remote rm origin

  • 删除已有的远程仓库。

$ git remote add github git@github.com:lcfu1/Git.git

  • 关联GitHub的远程库。

$ git push origin master:master

  • 推送到远程仓库,origin是上面我们在本地仓库添加的一个名为origin,地址为git@github.com:lcfu1/Git.git的远程仓库。第一个master是本地的master分支,第二是远程的master分支,如果两个一个则可以简化为$ git push origin master。

$ git push origin master

  • 推送到远程仓库的master分支。

$ git push origin one

  • 推送到远程仓库的one分支。

$ git push github master

  • 推送到GitHub。

$ git pull

  • 更新本地仓库。

$ git push one:master

  • 将本地的one分支推送到远程仓库。

$ git push master:one

  • 删除远程仓库的one分支。

参考