寫在最前面:
“ 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配置
- 生成ssh-key:ssh-keygen -t rsa -C “這裏換上你的郵箱” (連續確認),出現下圖說明ssh-key生成成功,在指定文件位置出現名爲id_rsa和id_rsa.pub的文件
- 將生成的 id_rsa.pub 文件中的全部內容添加在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. 待添加 :本地版本回退,遠程版本回退