以下内容,仅是为了巩固自己两天以来对git的初步学习。
也是本人第一次发博客 - - ,纪念一下。
新手想要学习git,推介去看廖雪峰大神的git教程。
廖雪峰的官方网站
git常用命令整理
创建版本库
$ mkdir learngit
$ cd learngit
$ pwd
$ git init
pwd
命令用于显示当前目录,
git init
初始化一个git仓库,
仓库搭建成功后可以在目录下找到.git
目录,如果看不见是因为该目录默认是隐藏的,使用ls -ah
就可以看到了。
添加文件至版本库
$ git add <files>
$ git commit -m "add files"
$ cat <files>
git add
将修改添加到暂存区,
git commit
将暂存区的修改提交至当前分支,
cat <files>
查看文件内容,
版本管理
$ git status
$ git diff <files>
$ git log --pretty=oneline
$ git log --graph
$ git reflog
$ git reset --hard HEAD^
$ git reset --hard 646123
$ git checkout -- <files>
$ git reset HEAD <files>
git status
可以查看仓库当前的状态,
git diff
查看对文件的修改,
git log
显示从最近到最远的提交日志,--pretty=oneline
参数可以将显示的信息简化,–graph可以看到分支合并图
git reflog
显示你的每一次命令,
git reset
版本回退,HEAD
表示当前版本,HEAD^
上一个版本,HEAD^^
上上一个版本,646123
是 commit id
用于回退到制定版本,
git checkout --
丢弃对工作区该文件的修改,
git reset HEAD
将暂存区的修改撤销,重新放回工作区,
删除文件
$ rm <files>
$ git checkout -- <files>
$ git rm <files>
$ git commit -m "remove <files>"
rm
将文件从工作区删除,
git rm
将文件从版本库删除,
添加远程库
$ git remote add origin git@server-name:path/repo-name.git
$ git remote add origin git@github.com:myname/studygit.git
$ git push -u origin master
$ git push origin master
$ git clone git@server-name:path/repo-name.git
git remote add origin git@server-name:path/repo-name.git
关联一个远程仓库,
git push origin master
将master
分支上的内容全部推送至远程仓库,-u
第一次推送是所需要的参数,可以在推送的同时关联远程仓库。
git clone git@server-name:path/repo-name.git
从远程仓库克隆,
分支管理
$ git branch
$ git branch dev
$ git checkout dev
$ git branch -b dev
$ git merge dev
$ git --no--ff merge -m "merge with no-ff"
$ git branch -d dev
$ git log --graph
$ git stash
$ git stash apply
$ git stash pop
$ git remote -v
$ git pull
$ git branch --set-upstream dev origin/dev
git branch
查看分支,
git branch <name>
创建分支,git checkout <name>
切换分支,-b
参数创建并切换,
git merge <name>
合并指定分支到当前分支,Git通常会使用Fast forward模式,这种模式下删除分支,会丢掉分支信息,--no--ff
参数表示强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git branch -d <name>
删除分支,
git log
显示从最近到最远的提交日志,--pretty=oneline
参数可以将显示的信息简化,–graph可以看到分支合并图,
git stash
可以将当前工作现场‘储藏’起来,git stash apply
将工作现场恢复,但不删除stash,git stash pop
将工作现场恢复,同时删除stash,
git remote -v
查看远程库信息,
git pull
从远程库抓取新的提交,
git branch --set-upstream dev origin/dev
设置本地dev分支与远程origin/dev分支的连接,
标签管理
$ git tag <name>
$ git tag
$ git tag <name> 6224937
$ git show <tagname>
$ git tag -a v0.1 -m "version 0.1 released" 3628164
$ git tag -d <tagname>
$ git push origin <tagname>
$ git push oringin --tags
$ git push origin :refs/tags/v0.1
git tag <name>
打一个新标签,默认打在最新提交的commit上,
git tag
查看所有标签,
git tag <name> 6224937
给指定id的commit打标签,
git show <tagname>
显示标签信息,
git tag -a v1.0 -m "version 1.0 released" 3628169
创建带有说明的标签,-a
指定标签,-m
指定说明信息,
git tag -d <name>
删除标签,
git push origin <tagname>
推送标签到远程库,--tags
一次性推送所有的标签到远程库,
git push origin :refs/tags/<tagname>
从远程库删除标签,
配置指令别名~~
$ 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"
偷懒是一件好事情 .