關于Git的一些隨筆

1.git是分布式版本控制,沒有中央服務器,,每個人的電腦就是一個完整的版本庫,工作時不需要聯(lián)網。

? svn是集中版本控制,版本庫是集中放在中央服務器的,必須聯(lián)網才能工作。

2. git bash:Unix與Linux風格的命令行,使用最多,推薦最多

? ? git cmd:Windows風格的命令行

? ? git Gui:圖形界面的git,不建議初學者使用,盡量先熟悉常用命令

3.常用的Linux命令:

? ? cd :改變目錄

? ? cd . . :回退到上一個目錄,直接cd進入默認目錄

? ? pwd :顯示當前所在的目錄路徑

? ? ls(ll):都是列出當前目錄中的所有文件,只不過ll(兩個ll)列出的內容更為詳細。

? ? touch :新建一個文件,如touch index.js就會在當前目錄下新建一個index.js文件

? ? rm :刪除一個文件,rm index.js就會把index.js文件刪除

? ? mkdir :新建一個目錄,就是新建一個文件夾

? ? rm -r :刪除一個文件夾,rm -r src 刪除src目錄

? ? ? ? 注:rm -rf / 切勿在Linux中嘗試!刪除電腦中全部文件!

? ? mv 移動文件,mv index.html src index.html 是我們要移動的文件,src是目標文件夾,當然,

? ? ? ? 這樣寫必須保證文件和目標文件夾在同一目錄下

? ? reset重新初始化終端/清屏

? ? clear 清屏

? ? history 查看命令歷史

? ? help 幫助

? ? exit 退出

? ? #表示注釋

4.git配置:

? ? ? 查看配置:git config -l

? ? ? 查看不同級別的配置文件:

? ? ? ? ? 查看系統(tǒng)config?

? ? ? ? ? ? git config --system --list

? ? ? ? ? 查看當前用戶(global)配置

? ? ? ? ? ? git config --global --list

5.git基本理論:

? git本地有三個工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage/Index)

? ? ? 資源庫(Repository或Git Dtrectory)再加上遠程git倉庫(Remote Directory)就四個

? ? Workspace:工作區(qū),就是你平時存放項目代碼的地方

? ? Stage/Index:暫存區(qū),用于臨時存放你的改動,事實上他只是一個文件,保存即提交到文本列表信息

? ? Repository:倉庫區(qū)(或本地倉庫),就是安全存放數據的位置,這里面有你提交到

? ? ? ? ? ? ? ? ? ? ? ? 所有版本的數據,其中HEAD指向最新放入倉庫的版本

? ? Remote:遠程倉庫,托管代碼的服務器,可以簡單的認為是你項目中的一臺電腦用于遠程數據交換

? ? .git:存放Git管理信息的目錄,初始化倉庫的時候自動創(chuàng)建

? ? Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當前的開發(fā)分支(branch)

? ? Stash:隱藏,是一個工作狀態(tài)保存棧,用于保存/恢復WorkSpace中的臨時狀態(tài)

6.工作流程:

? ? git的工作流程一般是這樣的:

? ? ①、在工作目錄中添加、修改文件;

? ? ②、將需要進行版本管理的文件放入暫存區(qū)域;

? ? ③、將暫存區(qū)域的文件提交到git倉庫。

? ? 因此,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)

7.創(chuàng)建工作目錄與常用指令:

? ? ? add、commit、push、pull、feach/clone、chekout

? ? ? git add .? ? ? ? ? ? ? ? ? 添加所有文件到暫存區(qū)? git add -A。(-A表示所有修改的文件)

? ? ? git commit -m "消息內容"? ? 提交暫存區(qū)中的內容到本地倉庫 -m 提交信息

? ? ? git push? 提交到遠程倉庫

8.本地倉庫搭建:

? ? ? 創(chuàng)建本地倉庫的方法有兩種:一種是創(chuàng)建全新的倉庫,另一種是克隆遠程倉庫

? ? ? ①創(chuàng)建全新的倉庫,需要用GIT管理的項目的根目錄執(zhí)行:

? ? ? ? ? 在當前目錄新建一個Git代碼庫

? ? ? ? ? ? ? git init

? ? ? ②克隆遠程倉庫

? ? ? ? ? ? ? git clone 【url】

9.文件的四種狀態(tài):

? ? ? Untracked: 未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態(tài)變?yōu)镾taged.

? ? ? Unmodify: 文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處,

? ? ? ? ? ? ? ? ? ? ? ? 如果它被修改, 而變?yōu)镸odified. 如果使用git rm移出版本庫, 則成為Untracked文件

? ? ? Modified: 文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存

? ? ? ? ? ? ? ? ? ? ? staged狀態(tài), 使用git checkout 則丟棄修改過, 返回到unmodify狀態(tài), 這個git checkout即從庫中

? ? ? ? ? ? ? ? ? ? ? 取出文件, 覆蓋當前修改 !

? ? ? Staged: 暫存狀態(tài). 執(zhí)行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify

? ? ? ? ? ? ? ? ? ? 狀態(tài). 執(zhí)行git reset HEAD filename取消暫存, 文件狀態(tài)為Modified

10.查看文件狀態(tài):

? ? ? 上面說到的四種狀態(tài)可以通過命令來查看文件的狀態(tài)

? ? ? ? ? 查看指定文件狀態(tài):

? ? ? ? ? ? ? ? git status 【filename】

? ? ? ? ? 查看所有文件狀態(tài):

? ? ? ? ? ? ? ? git status?

11.忽略文件:

? ? ? 有些時候我們不想把某些文件納入版本控制中,比如數據庫文件,臨時文件,設計文件等

? ? ? 在主目錄下建立".gitignore"文件,此文件有如下規(guī)則:

? ? ? ? ? ? 忽略文件中的空行或以井號(#)開始的行將會被忽略。

? ? ? ? ? ? 可以使用Linux通配符。例如:星號(*)代表任意多個字符,問號(?)代表一個字符,方括號([abc])

? ? ? ? ? ? ? ? ? 代表可選字符范圍,大括號({string1,string2,...})代表可選的字符串等。

? ? ? ? ? ? 如果名稱的最前面有一個感嘆號(!),表示例外規(guī)則,將不被忽略。

? ? ? ? ? ? 如果名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。

? ? ? ? ? ? 如果名稱的最后面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)。

12.使用碼云:

? ? ? ? 1.注冊登錄碼云,完善個人信息

? ? ? ? 2.設置本機綁定SSH公鑰,實現(xiàn)免密碼登錄(碼云是遠程倉庫,我們平時工作在本地倉庫)

? ? ? ? ? ? 生成公鑰命令:ssh-keygen? (ssh-keygen -t rsa)

? ? ? ? 3.將公鑰信息public key添加到碼云賬戶中即可

? ? ? ? 4.使用碼云創(chuàng)建一個自己的倉庫

? ? 有道無術、術尚可求。有術無道、止于術!

13.git分支:

? ? ? ? 列出所有本地分支

? ? ? ? ? ? git branch

? ? ? ? 列出所有遠程分支

? ? ? ? ? ? git branch -r

? ? ? ? 新建一個分支,但依然停留在當前分支

? ? ? ? ? ? git branch 【branch-name】

? ? ? ? 新建一個分支,并切換到該分支

? ? ? ? ? ? git chekout -b 【branch】

? ? ? ? 合并指定分支到當前分支

? ? ? ? ? ? git merge 【branch】

? ? ? ? 刪除分支

? ? ? ? ? ? git branch -d 【branch-name】

? ? ? ? 刪除遠程分支

? ? ? ? ? ? git branch -dr 【remote/branch】

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容