1. 程式人生 > >Linux中git的使用

Linux中git的使用

linux中 註意 通過 window branch www clean reset comm

之前在windows中一直采用github的桌面版,庫的建立更新都是借助軟件的幫助。所使用的的功能也非常局限,僅僅只是創建庫再提交自己的代碼。至於版本管理、回滾、分支以及git的結構都沒有清楚的認識。這次由於任務需要,在ubuntu中必須使用git來鏈接github,所以必須接觸一些git的命令,也對git的思想有了進一步的認識。這裏簡單梳理以下,作為備忘錄。文末也附上我參考的博客,有興趣的可以進一步閱讀。

一些認識

之前對github和git一直傻傻分不清,以為是兩種不同的版本管理工具。現在才認識到git是一種版本管理工具,而github只是一個遠程倉庫。實際上沒有github這種遠程倉庫,你計算機中git也會建立一個本地的倉庫,或者鏈接到其他的遠程倉庫。

1. git的安裝

輸入命令安裝git,並查看版本以確認安裝成功。

sudo apt-get install git
git --version

2. git的使用

先解釋一些概念,git分四層管理代碼。

  1. 你目錄中的文件是第一層
  2. 緩存區,每次add之後,當前目錄中要追蹤的文件會作為一個版本會存放在緩存區。註意不是所有的文件。一般一個文件生成之後,會標記為“未追蹤”,但是否對其做版本管理還是要選擇的。例如一些編譯文件就沒有必要追蹤。對需要做版本管理的問件,用add添加,不需要的用clean刪除。
  3. 本地倉庫,每次commit之後,緩存區最新的版本就會存放在本地倉庫。這裏要提及一個HEAD的概念。HEAD是當前的版本指向,每次更新或者回退都會修改HEAD的指向,但對倉庫中每一個版本並不會刪除。所以即使回退到過去還是有機會回到現在的版本的。
  4. 遠程倉庫,每次push之後,會將本地倉庫中HEAD所指向的版本存放到遠程倉庫

這裏附上一些我常用的命令作為備忘錄,詳細的使用效果請參考我文末附上的博客鏈接。

命令 功能
git init 在本地的當前目錄裏初始化git倉庫
git status 查看當前倉庫的狀態
git add -A 增加目錄中所有的文件到緩存區
git add file 增加相應文件到緩存區
git commit -m "信息" 將緩存區中更改提交到本地倉庫
git log 查看當前版本之前的提交記錄
git reflog 查看HEAD的變更記錄,包括回退
git branch -b branch_name 建立一個新的分支
git diff 查看當前文件與緩存區文件的差異
git checkout -- file 取消更改,將緩存區的文件提取覆蓋當前文件
git reset --hard 版本號 回退到相應版本號,同樣也可以回退到未來的版本號
git clean -xf 刪除當前目錄中所有未追蹤的文件
git config --global core.quotepath false 處理中文文件名

這些命令用於處理本地倉庫的版本管理足夠了,下面我介紹與遠程倉庫打交道。

2. git與github的鏈接

首先我們認為你已經有一個github的賬戶。

然後我們要建立SSH鏈接。這是一種通訊的加密協議。我先在我的筆記本上計算一對公鑰和私鑰,將公鑰存儲在github中,這樣本地就可以通過SSH與github展開加密通訊。詳細的內容可以參考SSH原理與運用(一):遠程登錄。

建立方法,輸入命令

ssh-keygen -t rsa -C "[email protected]" //雙引號裏面是你的常用郵箱

輸入之後要輸入口令,可以不用輸入直接按“enter”一路確認就可以了。然後在賬戶的根目錄(/或者/home/你的賬戶名,具體取決於你執行上述命令時所采用的賬戶)查找隱藏目錄.ssh/id_rsa.pub文件,將當中內容添加到github中。

這樣你就可以通過SSH鏈接到github中了。但是github作為一個遠程倉庫,你可以鏈接這個倉庫,並保持同步。但是你不能把本地倉庫直接上傳到github中去。所以你應該先在github中建立一個對應的倉庫,然後再在本地建立一個倉庫,將兩者進行鏈接,再去寫入文件執行版本管理。所用到的命令有

git remote add origin [email protected]:<用戶名>/<倉庫名>.git
git pull origin master //因為github建立倉庫時會有readme.md文件,先要拷貝一份
git push -u origin master //將本地倉庫鏈接到master分支上,你當然可以鏈接到其他分支
git push//上傳你的本地倉庫

還有一種方法不用分兩地建庫再去鏈接。你可以只在github上建庫,然後clone到本地目錄中。

git clone [email protected]:<用戶名>/<倉庫名>.git

至於團隊合作中的分支管理,由於現在還用不到,等以後有機會試用在去學習吧。


git與github簡單教程

Linux中git的使用