Git & GitHub 入門

寫在最前面:

I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.
我是一個自負的混蛋,我把自己的所有項目命名爲自己。 第一個Linux,現在是git。

git 和 github

  • git [gɪt] “混賬”
    是一個分佈式版本控制軟件,是一個軟件,可以理解成是一個工具,他是用來做版本控制的,記錄項目的開發進程,團隊合作必備。
  • GitHub:世界上最大的代碼存放網站和開源社區。
    故,Git 和 GitHub 是兩個東西

git的安裝

Windows 下載地址 https://git-scm.com/downloads 默認設置安裝


git配置

  • 設置用戶名:git config --global user.name “xxxx”
  • 設置郵箱:git config --global user.email “xxxx”
  • 查看用戶 :git config user.name
  • 查看用戶郵箱 :git config user.email
  • 生成ssh-key:ssh-keygen -t rsa -C “這裏換上你的郵箱” (連續確認),出現下圖說明ssh-key生成成功,在指定文件位置出現名爲id_rsa和id_rsa.pub的文件
    生成SSH祕鑰
  • 將生成的 id_rsa.pub 文件中的全部內容添加在GitHub中
    添加公鑰到GitHub

git常用命令

倉庫相關

  • git init :創建一個git倉庫
  • git status :查看當前暫存區的修改內容
  • git add . :注意是一個英文句號,所用是將工作區的代碼文件添加到暫存區中
  • git commit -m"xxx" :注意雙引號中的xxx是提交的參數,描述這這次提交的改動,必填,每次提交都對應一個 id 。
  • git log : 查看之前幾次的版本提交
  • git clone xxx :將遠程的一個倉庫(任何一個倉庫)克隆(通俗的將就是下載)到本地。xxx 爲倉庫地址

分支相關

  • git checkout -b xxx : 創建新分支xxx,並切換到這個分支
  • git ckeckout xxx :切換到分支xxx
  • git merge xxx :將xxx分支的東西合併到當前分支
  • git remote add origin xxxx :將本地倉庫與遠程倉庫建立關聯
  • git push -u origin master :第一次提交本地倉庫到遠程倉庫
  • git push origin xxx :將代碼提交到遠程xxx分支
  • git pull origin xxx :將遠程xxx分支的拉取到當前分支

版本回退

本地版本回退

  • git log 查看要繪回退到的某個版本的提交 id
  • git reset --hard xxx :回退到提交版本id爲 xxx 的版本,xxx 爲提交版本的 id 的前幾位,不需要寫全。

以上命令中提到的概念

  • 倉庫 :有遠程倉庫和本地倉庫之分,一般本地倉庫與遠程倉庫會建立關聯對應在一起,直觀看倉庫就是一個文件夾,一般說這個文件夾由 git 託管,其中會有一個隱藏了的 .git 的文件夾
  • 暫存區 & 工作區 :
    暫存區 & 工作區
    把文件往Git版本庫裏添加的時候,分兩步執行:
    第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
    第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
  • 分支 :適用於分工合作,幾個人共同開發一個項目每個人有自己的分支,項目還有一個唯一的 master 分支,分支之間可進行切換,合併,本地的分支也有相應的遠程分支對應。
  • 建立關聯 : 將本地倉庫與遠程倉庫之間建立關聯,就可以將本地的代碼文件託管到遠程倉庫,相應的分支也對應起來。

舉例一般使用

一個項目由三個人 A、B、C 分工合作完成,每個人有自己的分支 a、b、c

  • 項目還需要一個 dev 分支,dev 分支負責測試階段性功能。
  • 其中 A 爲項目的倉庫創建者,由 A 管理項目的 master 分支和 dev 分支,負責將 dev 分支上的已經測試好的無 bug 的版本合併到 matser 分支上,並將其推送到遠程 master 分支上提供發佈或者下載功能。
  • A、B、C 三個人將各自開發的版本推送到遠程對應的分支,並根據自己的需要從同伴遠程分支上拉取代碼。
  • A 負責將 a、b、c 對應的遠程分支的代碼,合併在 dev 分支上。

ps. 待添加 :本地版本回退,遠程版本回退

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章