【GIT】think like a GIT

经常使用git操做总结记录git

准备工做

安装Git
配置github

$ git config --global user.name ""
$ git config --global user.email ""

本地建立版本库segmentfault

$ git mkdir git
$ cd git
$ git init

备份并删除原有SSHapp

  1. 检查ssh是否存在ssh

    $ cd ~/.ssh
  2. 若是存在,则备份并删除fetch

    $ ls  
       id_rsa  id_rsa.pub  known_hosts
       $ mkdir key_backup                //建立备份目录
       $ cp id_rsa* key_backup           //备份
       $ rm id_rsa*                      //删除

添加远程仓库(githubspa

  1. 建立SSH Key命令行

    $ ssh-keygen -t rsa -C "email@example.com"

这时在用户目录下多出了两个文件:id_rsa(私钥)和id_rsa.pub(公钥),建立空文件known_hosts日志

  1. 登录GitHub,打开Account settings/SSH Keys页面,点Add SSH Key,填上Title,在Key文本框里粘贴id_rsa.pub文件的内容。粘贴好之后点Add Key,你就应该看到已经添加的Key
  2. 点击Create repository,建立远程仓库。
  3. 添加远程仓库。code

    $ git remote add origin git@github.com:username/repository.git
  4. 第一次推送并关联远程库

    $ git push -u origin master

克隆远程仓库

  1. 先在githubfork一个开源仓库,这时,这个仓库在你的帐号中已经有了一个副本了。
  2. 克隆到本地。

    $ git clone git@github.com:username/repository.git
  3. 推送代码到本身的仓库后,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 Data Transport Commands

分支

查看分支

$ 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...

文章不按期更新完善,若是能对你有一点点启发,我将不胜荣幸。

相关文章
相关标签/搜索