Git 命令

功能命令解释
 设置  git config --global user.name "Your Name"  自报家门:你的名字
 git config --global user.name "Your Email"  自报家门:你的邮箱

 初始化 git 仓库

 git init  将当前目录变成Git可以管理的仓库
 添加文件到 git 仓库  git add file1.txt  将 file1.txt 提交到暂存区
 git add file2.txt file3.txt  将 file2.txt 以及 file3.txt 同时提交到暂存区
 git commit -m "add 3 files"  将暂存区的文件提交到仓库内,-m 后跟的是提交的信息,
 建议写的明显易懂,最好是跟文件修改内容相关
 查看仓库状态  git status

 查看仓库当前的状态:

 Changes not staged for commit  ## 发生了改变但是没有提交到仓库内(还没有执行 git add)

 Changes to be committed  ## 将要提交修改(已经执行了 git add)

 nothing to commit,working tree clean  ## 已执行 git commit ,当前没有需要提交的修改

 Untracked files  ## 新添加了文件,但还未 add

 git diff  查看 difference,查看本地的文件与 master 版本的差异
 显示提交日志   git log   显示从最近到最远的提交日志
 git log --pretty=oneline  显示从最近到最远的提交日志的简化信息
 git reflog  记录每一次 commit 和 reset 命令
 版本控制    git reset --hard HEAD^  将当前版本回退至上一版本
 git reset --hard HEAD~n  将当前版本回退至第 n 个版本
 git reset --hard commit_id  将当前版本指向 commit_id 版本号的版本
 撤销修改  git checkout -- file1.txt  将 file1.txt 文件丢弃工作区的修改(file1.txt 还没放进暂存区)
 git reset --hard HEAD && git checkout -- file1.txt  将 file1.txt 文件丢弃工作区的修改(file1.txt 已经放进暂存区)
 删除文件  git rm test.txt && git commit -m 'delete test'  将版本库内的 test.txt 删除(其实也是一次修改)
 git checkout -- test.txt  本地的 test.txt 误删除了,但是版本库内还没有删除,用这个可还原
 创建SSH Key  ssh-keygen -t rsa -C "youremil.com"  生成密钥对,将 id_rsa.pub 文件内的内容粘贴到 github 的 SSH key 内,添加了才能往 github 推送
 添加远程库  git remote add origin git@github.com:ganziwen/learngit.git  本地关联远程仓库,添加后,远程库的名字就是 origin 
 git push -u origin master  把本地库的所有内容推送到远程库(github)上,执行一次之后,以后就不用 -u 参数了
 git push origin master  本地作了提交,使用该命令将本地的 master 分支的最新修改推送至 github
 从远程库克隆  git clone git@github.com:ganziwen/helloworld.git  将 github 仓库的 helloworld 克隆到本地
 创建分支  git branch dev  创建一 dev 新分支
 切换分支  git checkout dev  切换到 dev 分支
 创建&切换分支  git checkout -b dev  创建一个 dev 分支,并且切换到 dev 分支
 查看分支  git branch  查看当前所有分支,所指向的分支用 * 标注
 合并分支  git merge dev  将 dev 分支合并到当前分支。Fast-forward 代表快进模式合并
 删除分支  git branch -d dev  将 dev 分支删除(合并完了不用就可以删除)
 查看分支合并图  git log --graph  查看 merge 的合并图
 git log --graph --pretty=oneline --abbrev-commit  简化分支图信息,过滤不必要的信息
 合并分支  git merge --no-ff -m 'message' dev  合并分支时,加上 --no-ff 参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
 bug 分支管理  git stash  把当前工作现场“储藏”起来,等以后恢复现场后继续工作
 git stash list  查看工作现场的保存
 git stash pop  恢复的同时把stash内容也删了
 git stash apply && git stash drop  恢复 && 删除
 删除分支  git branch -D dev  对于还未 merge 的版本进行删除,用于删除新功能开发,不合并,需要删除的问题
 查看远程库信息  git remote  查看对应的远程库是哪个库
 推送分支  git push origin dev   将本地的 dev 分支 push 到 origin 分支
 抓取分支  git branch --set-upstream-to=origin/dev dev  设置 dev 和 origin/dev 的链接
 git pull   将远程的 origin 分支抓取到本地
 创建标签
 标签和 commit 挂钩
 git tag v1.0  将当前分支打标签,名字为 v1.0,默认标签是打在最新提交的commit上的
 git tag  查看所有标签
 git tag v0.9 <commit-id>  对相应的 commit-id 打标签
 git show <tagname>  查看标签信息
 git tag -a v0.1 -m "version 0.1 tag" <commit-id>

 创建带有说明的标签,-a 指定标签名,-m 指定说明文字

 操作标签   git tag -d <tagname>  删除标签
 git push origin <tagname>  推送某个标签到远程
 git push origin --tags  一次性推送全部尚未推送到远程的本地标签
 git tag -d <tagname> && git push origin :refs/tags/<tagname>  已推送至远程的标签删除,需先删除本地的,再删除远程的(删除命令也是 push )
 显示提交  git last

 显示最近一次的提交

 配置别名   git config --global alias.st status  为 git status 设置别名为 git st,其他的类似:ci 表示 commit ,co 表示 checkout,br 表示 branch
 git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"  用颜色可以看出变化,简洁明了
 配置文件  .git/config  可以在这里面添加别名,在  alias 内
posted @ 2019-02-28 17:20  小文叔  阅读(267)  评论(0编辑  收藏  举报