常用git
操作总结记录
准备工作
安装Git
配置
$ git config --global user.name ""
$ git config --global user.email ""
本地创建版本库
$ git mkdir git
$ cd git
$ git init
备份并删除原有SSH
-
检查ssh是否存在
$ cd ~/.ssh
-
如果存在,则备份并删除
$ ls id_rsa id_rsa.pub known_hosts $ mkdir key_backup //创建备份目录 $ cp id_rsa* key_backup //备份 $ rm id_rsa* //删除
添加远程仓库(github
)
-
创建
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
,创建远程仓库。 -
添加远程仓库。
$ 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...文章不定期更新完善,如果能对你有一点点启发,我将不胜荣幸。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。