经常使用git
操做总结记录git
安装Git
配置github
$ git config --global user.name "" $ git config --global user.email ""
本地建立版本库segmentfault
$ git mkdir git $ cd git $ git init
备份并删除原有SSHapp
检查ssh是否存在ssh
$ cd ~/.ssh
若是存在,则备份并删除fetch
$ ls id_rsa id_rsa.pub known_hosts $ mkdir key_backup //建立备份目录 $ cp id_rsa* key_backup //备份 $ rm id_rsa* //删除
添加远程仓库(github
)spa
建立SSH Key
命令行
$ ssh-keygen -t rsa -C "email@example.com"
这时在用户目录下多出了两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥),建立空文件known_hosts
。日志
GitHub
,打开Account settings/SSH Keys
页面,点Add SSH Key
,填上Title
,在Key
文本框里粘贴id_rsa.pub
文件的内容。粘贴好之后点Add Key
,你就应该看到已经添加的Key
。Create repository
,建立远程仓库。添加远程仓库。code
$ git remote add origin git@github.com:username/repository.git
第一次推送并关联远程库
$ git push -u origin master
克隆远程仓库
github
上fork
一个开源仓库,这时,这个仓库在你的帐号中已经有了一个副本了。克隆到本地。
$ git clone git@github.com:username/repository.git
pull reques
到开源仓库。从工做区(Working Directory
)添加到暂存区(stage/index
)
$ git add readme.md $ git add . //添加全部修改的文件
从暂存区提交到版本库(Repository/HEAD
)
$ git commit -m ""
从版本库推送到远程仓库master
分支
$ git push origin master
从远程仓库更新本地
$ git pull
从远程仓库获取最新文件并更新本地
$ git fetch origin master $ git log -p master..origin/master //查看不一样 $ git merge origin master
查看本地文件状态
$ git status
查看文件修改内容
$ git diff
查看提交历史日志
$ git log $ git log --pretty=oneline //一行显示一次提交历史
查看命令历史
$ git reflog
查看远程库信息
$ git remote $ git remote -v
撤销工做区的修改(找回被误删的工做区的文件)
$ git checkout -- readme.md //回到最近一次add或commit时的状态
撤销提交到暂存区的文件
$ git reset HEAD readme.md
回退版本到该版本commit
以前
$ git reset --hard HEAD^ //回退到上一个提交版本 $ git reset --hard HEAD^^ //回退到上两个提交版本 $ git reset --hard HEAD~100 //回退到上100个提交版本 $ git reset --hard 123456... //回退到提交id为123456...的版本
删除文件
$ git rm readme.md $ git commit -m "delete readme.md"
最后附图一张:
查看分支
$ git branch
建立分支dev
$ git branch dev
切换到分支dev
$ git checkout dev
建立并切换到分支dev
$ git checkout -b dev $ git checkout -b dev origin/dev //建立远程仓库分支到本地
指定远程仓库dev
分支到本地dev
分支的连接
$ git branch --set-upstream dev origin/dev
合并分支dev
$ git merge dev $ git merge --no-ff -m "merge with no-ff" dev //生成一次commit,经过历史记录能够查询到。
删除分支dev
$ git branch -d dev $ git branch -D dev //删除没有合并的分支
保存现场
$ git stash
查看保存的现场
$ git stash list
删除现场
$ git stash pop //恢复现场并删除stash $ git stash apply //恢复现场不删除stash $ git stash drop //删除现场
查看标签
$ git tag
建立标签
$ git tag v1.0 $ git tag v0.9 123456... //为提交id为123456...的版本建立标签 $ git tag -a v1.0 -m "v1.0 released" 123456... //添加注释
查看标签信息
$ git show v1.0
推送标签到远程库
$ git push origin v1.0 $ git push origin --tags //推送全部标签
删除标签
$ git tag -d v1.0 $ git push origin :refs/tags/v1.0 //删除远程库标签
.gitignore
文件忽略不须要添加到本地仓库的文件。配置别名。
$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.unstage 'reset HEAD' $ git config --global alias.last 'log -1' $ git config --global alias.lg 'log --pretty=oneline'
配置别名也可在.gitconfig
文件中设置。
删除别名。在.git/config
配置文件中删除对应的别名。
参考:廖雪峰Git教程
配置github的SSH key及GitHub项目上传方式一——使用终端命令行
转载请注明出处: https://segmentfault.com/a/11...文章不按期更新完善,若是能对你有一点点启发,我将不胜荣幸。