git的基本操做(一)

1.什麼是git?

Git是一款免費、開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。Git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到很是大的項目版本管理。既然你瞭解了什麼是git,那接下來就開始新建屬於本身的git吧。git

2.下載和安裝git

3.註冊github帳號

  • 版本控制器的種類不少,這裏我建議選擇github版本控制器
  • 打開官網:github.com 右上角 sign in or sign up 分別爲 登陸註冊,點擊 註冊 後,須要填寫一個 username(用戶名)email(郵箱地址)password(密碼) 填寫完成後一路提交。

4.生成ssh key

  1. 打開 mac終端
  2. 檢查 ssh key $ cd ~/.ssh
    若是存在,先將已有的ssh備份,或者將新建的ssh生成到另外的目錄下,若是不存在,經過默認的參數直接生成ssh
  3. 生成ssh key
    $ ssh-keygen -t rsa -C 727417703@qq.com
    期間會提示你輸入key的文件名稱,密碼和確認密碼,一路Entergithub

    Generating public/private rsa key pair.windows

    Enter file in which to save the key (/Users/threebears/.ssh/id_rsa):緩存

    Enter passphrase (empty for no passphrase):bash

    Enter same passphrase again:markdown

5. 將ssh key保存在github中

  1. 打開剛剛生成的key文件 id_rsa.pub,由於mac以點開頭的文件系統都是默認隱藏的,咱們能夠經過macFdinder 前往剛剛保存key的默認目錄/Users/threebears/.ssh/id_rsa,其 threebears 爲你mac的用戶名。
  2. 複製 id_rsa.pub 文件裏的內容,打開你的github,在右上角頭像小圖標中選擇 Settings
    github_sign_up.pgn
    github_sign_up.pgn
  3. 在左側菜單欄中找到 SSH and GPG keys ,將剛剛複製的 ssh key 添加進去(ps: title能夠忽略不填),保存成功後你就可使用 git clone or push 代碼到 github 倉庫了
  4. ssh key設置成功後能夠在終端使用ssh -T git@github.com進行測試,如出現
    ssh_key_success.png
    ssh_key_success.png

6. git的基礎使用

  • git init
    用 git init 在目錄中建立新的 Git 倉庫。 你能夠在任什麼時候候、任何目錄中這麼作,徹底是本地化的。
    在目錄中執行 git init,就能夠建立一個 Git 倉庫了。好比咱們建立 test 項目:app

    $ mkdir test 建立文件夾
    $ cd test 跳轉
    $ git init 建立git倉庫
    $ Initialized empty Git repository in /Users/threebears/test/.git/
    /Users/threebears/test/ 目錄下就建立了一個.git文件夾,這個就是git倉庫。ssh

  • git clone
    使用git clone拷貝一個Git倉庫到本地,讓本身可以查看該項目,或者進行修改。
    若是你須要與他人合做一個項目,或者想要複製一個項目,看看代碼,你就能夠克隆那個項目。 好比:分佈式

    $ git clone git@github.com:wz1509/GankIo-Kotlin.git
    Cloning into 'GankIo-Kotlin'...
    remote: Counting objects: 178, done.
    remote: Compressing objects: 100% (111/111), done.
    remote: Total 178 (delta 41), reused 172 (delta 37), pack-reused 0
    Receiving objects: 100% (178/178), 3.48 MiB | 18.00 KiB/s, done.
    Resolving deltas: 100% (41/41), done.測試

    靜靜等待一段時間就能夠克隆到本地,期間若是提示權限被拒絕,請檢查你的`ssh key`或設置本地git我的信息:複製代碼

    $ git config --global user.name "your real name" #你的github用戶名
    $ git config --global user.email "xxxxx@gmail.com" #對應的郵箱

  • git add
    使用git add命令可將該文件添加到緩存。如:

    $ touch test1.txt #建立一個文件
    $ touch test2.txt
    $ ls #列出該目錄下全部文件,包含文件夾和文件

    README.md     gradle             gradlew.bat
     app           gradle.properties  img
     build.gradle  gradlew            settings.gradle
     test1.txt     test2.txt複製代碼

    $ git status -s #查看和上次提交之間的狀態

    ?? test1.txt
      ?? test2.txt複製代碼

    $ git add test1.txt test2.txt #添加到緩存區
    $ git status -s

    A  test1.txt
      A  test2.txt複製代碼

    git add .

    將全部變化的文件提交到緩存區

  • git reset HEAD
    撤銷已在緩存區的文件

    git reset HEAD -- test1.txt
    git status -s

    ?? test1.txt
      A  test2.txt複製代碼
  • git status
    查看在你上次提交以後是否有修改。若是在後面追加-s則是查看簡短信息,反之查看詳細信息。

    git status

    On branch master
      Your branch is up-to-date with 'origin/master'.
    
      Changes to be committed:
         (use "git reset HEAD <file>..." to unstage)
    
      new file:   test1.txt
      new file:   test2.txt複製代碼

    git status -s

    A  test1.txt
      A  test2.txt複製代碼
  • git diff
    查看最近的改動,好比終端敲上:$ git diff

    git_diff.jpg
    git_diff.jpg

    截取了部分日誌, 紅色部分前面有個- 表明我刪除的,綠色前面有個+ 表明我增長的
    不過git diff只能比較當前文件和緩存區文件之間的差別。

  • git branch
    查看當前分支列表。好比一個項目須要一個團隊共同去完成,這個時候就要用到分支來分配各自的任務。

    $ git branch #查看當前分支列表
    $ git branch wz #新建一個wz分支
    $ git checkout wz #切換到wz分支
    $ git branch -d wz #刪除wz分支,若是-d換成-D就是強制刪除
    $ git checkout -b wz #新建並切換到wz分支

    吻醒提示:圖中的*和綠色表明當前所在分支。

    git_branch.jpg
    git_branch.jpg

    ⚠️注意1:若是你在wz分支內,那麼不能刪除wz分支,須要現切換到master後再刪除wz分支。
    ⚠️注意2:新建的分支是在你當前所在的分支基礎上進行的。好比你在master分支上新建了wz分支,那麼wz就和master內容徹底一致。

  • git commit
    使用 git commit 將緩存區內容添加到倉庫中。

    git commit -m "添加兩個測試文件" #後面的文本爲提交日誌,建議每次提交到倉庫都要寫提交日誌。

  • git pull origin master
    把遠程倉庫代碼合併,以保證兩端同步。
  • git push origin master
    把本地代碼提交到github倉庫master分支。通常在push前都會先pull,這樣不容易形成衝突。
第一篇博客,markdown語法不太熟練,若是有什麼問題能夠聯繫我,謝謝!
QQ:727417703 郵箱:727417703@qq.com複製代碼

個人博客:wz1509.github.io/

相關文章
相關標籤/搜索