Git使用說明

jopen 11年前發布 | 20K 次閱讀 Git 版本控制系統

1.     創建git項目

    使用git的第一步是創建一個git項目。這一步需要在github網站上完成,在網站中創建一個全新的repository。如果我們之前在本地完成一個項目,想要將該項目發布到github,則此時新建的repository不要有任何文件,即使是README這樣的文件,然后我們可以按照如下流程完成創建:

      a)       cd localproject

      b)       git init

      c)       git add * //將目錄下所有的文件添加到git項目中;

      d)      git commit –m “add a message”;

      e)       git remote add origin https://github.com/username/***.git

      f)        git push origin master.

上述步驟完成之后,我們本地的項目就上傳到github下指定的repository下。在一開始我們提到,不要在創建repository時添加任何文件,否則我們不能正常提交,因為github上的初始版本和本地版本不一致。

    如果我們是要對上述項目做二次開發,則我們可以從github網站上下載該項目,然后本地修改。流程如下:

      a)       git clone https://github.com/username/***.git newdirectory

      b)       cd newdirectory

      c)       modify some files

      d)      git commit –a “modify theproject”// shorthand for “add and commit”

      e)       git push origin master

流程第一步是從github上clone一個項目到本地,然后我們做修改,最后再提交。

上述流程就是很多博客中說的1分鐘學會github托管。但是只會上面的操作不足以應對平時的各種需求,我們還需要進一步了解git。

2.     git的狀態轉換

    針對本地的一個項目,如果不是從github上下載,則所有文件一開始都屬于untracked狀態,否則都屬于tracked狀態。屬于 untracked狀態的文件,如果我們不將其添加到git中,任意的修改都不會影響git狀態。所以如果是我們想要保存到git中的文件,我們首先要將其添加到git中,命令就是git add。添加之后的文件就屬于tracked狀態。tracked狀態本身又有三個子狀態:modified,staged和committed。一個未經修改的文件被添加到git中之后將會是staged狀態,此時我們運行git commit將會使這個文件變為committed狀態。變為committed狀態之后,git就為該項目生成了一個snapshot,我們就可以將其 push到github中。一個被commit的文件如果被修改,其狀態又會變為modified狀態,等待新的add和commit。如果我們想將一個文件從項目中除名,可以采用git rm命令。不加--cached參數的rm命令將會物理刪除文件,添加該選項將會把文件從git項目中刪除,但是不物理刪除。文件的狀態也變為 untracked狀態。git中文件狀態轉換關系如下圖:

20130611201650875.png

                                                                                        圖1 git文件的狀態轉換

3.     git文件過濾

    在項目開發過程中,會存在很多臨時文件,比如備份文件~、和對象文件.o等等。這些文件無需添加到git中。我們可以在工程根目錄下設置一個.gitignore文件指明無需添加的文件。該文件內容很簡單:

      *.o #表示忽略目標文件

      *~ #表示忽略備份文件

      .* #表示忽略隱藏文件

    通過設定該文件,當我們用git add 添加一個目錄時,會自動忽略掉符合上面規則的所有文件。

4.     遠程協作

    當我們采用git clone從遠程下載一個項目時,git會為我們這個項目自動添加一個遠程repository,名為origin。我們還可以通過命令:git remote add [shortname] [url]來添加新的repository作為我們下載上傳的目標。下載時我們可以采用git clone/fetch/pull來完成。上傳時采用git push [remote-name] [branch-name]完成。

5.     回滾

    回滾操作可以讓我們回歸到之前的版本,取消錯誤的commit。主要有兩種方式:revert和reset。git revert 命令會通過一個新的commit 來使倉庫倒退一個commit。執行git revert cc3a9d3a5820b16bca3c1761efb5885b90371e94被回滾到hash值所在的commit。git reset是指將當前head的內容重置,不會留任何痕跡。執行git reset d5bb1731bf32fb62dc7eedc573da41fa31e27151 --hard 會直接回到hash值那時的commit狀態,之后發生了什么都不會出現在commit log里。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!