溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git基礎(chǔ)入門(三)Git基本操作

發(fā)布時間:2020-08-04 23:06:36 來源:網(wǎng)絡 閱讀:488 作者:紅塵世間 欄目:軟件技術(shù)

獲取 Git 倉庫的兩種方式:

    第一種是在現(xiàn)有項目或目錄下導入所有文件到Git中

    第二種是從一個服務器克隆一個現(xiàn)有的Git倉庫



初始化Git倉庫:

    git init                #使Git能夠管理當前目錄(初始化)

    1、該命令將創(chuàng)建一個名為.git的子目錄,這個子目錄含有你初始化的Git倉庫中所有的必須文件,這些文件是 Git 倉庫的骨干

    2、如果你是在一個非空目錄中初始化Git倉庫來進行版本控制的話,你應該開始跟蹤這些文件并提交

        git add *.py                 #跟蹤當前目錄下的所以.py文件(將文件放入暫存區(qū)域)                                      

        git commit -m 'version1'     #提交-m指定附加信息(將文件提交至Git倉庫)



克隆現(xiàn)有的倉庫

    如果想獲得一份已存在的Git倉庫,需要用到git clone命令,Git克隆的是該Git倉庫服務器上的幾乎所有數(shù)據(jù),而不是僅僅復制完成你的工作所需要文件

    當執(zhí)行g(shù)it clone命令的時候,默認配置下遠程Git倉庫中的每一個文件的每一個版本都將被拉取下來

    如果你的服務器的磁盤壞掉了,你可以使用任何一個克隆下來的用戶端來重建服務器上的倉庫



    git clone [url]

    例:git clone https://github.com/libgit2/libgit2

    這會在當前目錄下創(chuàng)建一個名為libgit2的目錄,并在這個目錄下初始化一個.git目錄,從遠程倉庫拉取下所有數(shù)據(jù)放入libgit2目錄

 


    git clone https://github.com/libgit2/libgit2 mylibgit

    這將執(zhí)行與上一個命令相同的操作,不過在本地創(chuàng)建的倉庫名字變?yōu)閙ylibgit。



工作目錄下的每一個文件都只有兩種狀態(tài):已跟蹤或未跟蹤

    已跟蹤的文件指的是那些被納入了版本控制的文件,在上一次快照中有它們的記錄,在工作一段時間后,它們的狀態(tài)可能處于未修改,已修改或已放入暫存區(qū)

    工作目錄中除了已跟蹤文件以外的所有其它文件都屬于未跟蹤文件,它們既不存在于上次快照的記錄中,也沒有放入暫存區(qū)



Git文件的生命周期:

    編輯過某些文件之后,由于自上次提交后你對它們做了修改,Git將它們標記為已修改文件

    我們將這些修改過的文件放入暫存區(qū),然后提交所有暫存了的修改




檢查當前文件狀態(tài)

    git status              #查看Git倉庫所以文件的狀態(tài)


例:git status

    On branch master                                            #當前使用的Git分支(分支名稱:master)

    nothing to commit, working directory clean                  #沒有需要提交的文件(即當前目錄從上一次提交之后沒有發(fā)生任何改變)



例:echo 'My Project' > test.py

   git status

      On branch master

      Untracked files:                            #表示工作目錄下面存在為跟蹤的文件或目錄

      (use "git add <file>..." to include in what will be committed)


          test.py                                 #顯示為跟蹤的文件或目錄


      nothing added to commit but untracked files present (use "git add" to track)


      未跟蹤的文件意味著Git在之前的快照中沒有這些文件,Git 不會自動將之納入跟蹤范圍,除非你明明白白地告訴它"我需要跟蹤該文件"



跟蹤新文件

    git add test.py

    此時再運行g(shù)it status命令,會看到test.py文件已被跟蹤,并處于暫存狀態(tài):


    git status

      On branch master

      Changes to be committed:                  #表示有需要提交的修改

        (use "git reset HEAD <file>..." to unstage)


          new file:  test.py                    #新文件(即以前快照中不存在的文件)  






暫存已修改文件

    git commit -m 'version-1'                       #提交前面的操作

    echo '#!/usr/bin/env python' > test.py          #修改test.py文件內(nèi)容

    git status


        On branch master

        Changes not staged for commit:                  #未提交的跟改

          (use "git add <file>..." to update what will be committed)

          (use "git checkout -- <file>..." to discard changes in working directory)


            modified:   test.py                         #修改后的文件或目錄


    git add test.py                     #將修改后的文件放入暫存區(qū)

    

    git status

      On branch master

      Changes to be committed:                  #表示有需要提交的修改

        (use "git reset HEAD <file>..." to unstage)


          modified:   test.py                   #修改后的文件或目錄

    

    現(xiàn)在文件處于已暫存,下次提交時就會記錄到倉庫,此時如果,你更改了test.py的文件內(nèi)容

    echo '#coding:utf-8' >> test.py             #修改test.py文件內(nèi)容

    git status

        On branch master

        Changes to be committed:

        (use "git reset HEAD <file>..." to unstage)


            modified:   test.py


        Changes not staged for commit:

        (use "git add <file>..." to update what will be committed)

        (use "git checkout -- <file>..." to discard changes in working directory)


            modified:   test.py


    現(xiàn)在test.py文件同時出現(xiàn)在暫存區(qū)和非暫存區(qū),實際上Git只不過暫存了你運行g(shù)it add命令時的版本

    所以,運行了git add之后又作了修訂的文件,需要重新運行g(shù)it add把最新版本重新暫存起來


    git add test.py

    git commit -m 'version-2'               #提交更新(如果不使用-m選項時會出現(xiàn)一個默認編輯器讓你輸入更新的標記信息)



    git add是個多功能命令,可以用它跟蹤新文件,或者把已跟蹤的文件放到暫存區(qū),還能用于合并時把有沖突的文件標記為已解決狀態(tài)等



git status -s:

    git status命令的輸出十分詳細,但其用語有些繁瑣。使用 git status -s 命令將得到一種更為緊湊的格式輸出


    新添加的未跟蹤文件前面有 ?? 標記

    新添加到暫存區(qū)中的文件前面有 A 標記

    修改過的文件前面有 M 標記

        例:M test.py

            M  test.py

    M有兩個可以出現(xiàn)的位置,出現(xiàn)在右邊的 M 表示該文件被修改了但是還沒放入暫存區(qū),出現(xiàn)在靠左邊的 M 表示該文件被修改了并放入了暫存區(qū)。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI