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

文章不按期更新完善,若是能對你有一點點啓發,我將不勝榮幸。

相關文章
相關標籤/搜索