您好,登錄后才能下訂單哦!
獲取 Git 倉庫的兩種方式:
第一種是在現有項目或目錄下導入所有文件到Git中
第二種是從一個服務器克隆一個現有的Git倉庫
初始化Git倉庫:
git init #使Git能夠管理當前目錄(初始化)
1、該命令將創建一個名為.git的子目錄,這個子目錄含有你初始化的Git倉庫中所有的必須文件,這些文件是 Git 倉庫的骨干
2、如果你是在一個非空目錄中初始化Git倉庫來進行版本控制的話,你應該開始跟蹤這些文件并提交
git add *.py #跟蹤當前目錄下的所以.py文件(將文件放入暫存區域)
git commit -m 'version1' #提交-m指定附加信息(將文件提交至Git倉庫)
克隆現有的倉庫
如果想獲得一份已存在的Git倉庫,需要用到git clone命令,Git克隆的是該Git倉庫服務器上的幾乎所有數據,而不是僅僅復制完成你的工作所需要文件
當執行git clone命令的時候,默認配置下遠程Git倉庫中的每一個文件的每一個版本都將被拉取下來
如果你的服務器的磁盤壞掉了,你可以使用任何一個克隆下來的用戶端來重建服務器上的倉庫
git clone [url]
例:git clone https://github.com/libgit2/libgit2
這會在當前目錄下創建一個名為libgit2的目錄,并在這個目錄下初始化一個.git目錄,從遠程倉庫拉取下所有數據放入libgit2目錄
git clone https://github.com/libgit2/libgit2 mylibgit
這將執行與上一個命令相同的操作,不過在本地創建的倉庫名字變為mylibgit。
工作目錄下的每一個文件都只有兩種狀態:已跟蹤或未跟蹤
已跟蹤的文件指的是那些被納入了版本控制的文件,在上一次快照中有它們的記錄,在工作一段時間后,它們的狀態可能處于未修改,已修改或已放入暫存區
工作目錄中除了已跟蹤文件以外的所有其它文件都屬于未跟蹤文件,它們既不存在于上次快照的記錄中,也沒有放入暫存區
Git文件的生命周期:
編輯過某些文件之后,由于自上次提交后你對它們做了修改,Git將它們標記為已修改文件
我們將這些修改過的文件放入暫存區,然后提交所有暫存了的修改
檢查當前文件狀態
git status #查看Git倉庫所以文件的狀態
例:git status
On branch master #當前使用的Git分支(分支名稱:master)
nothing to commit, working directory clean #沒有需要提交的文件(即當前目錄從上一次提交之后沒有發生任何改變)
例: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
此時再運行git status命令,會看到test.py文件已被跟蹤,并處于暫存狀態:
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文件內容
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 #將修改后的文件放入暫存區
git status
On branch master
Changes to be committed: #表示有需要提交的修改
(use "git reset HEAD <file>..." to unstage)
modified: test.py #修改后的文件或目錄
現在文件處于已暫存,下次提交時就會記錄到倉庫,此時如果,你更改了test.py的文件內容
echo '#coding:utf-8' >> test.py #修改test.py文件內容
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
現在test.py文件同時出現在暫存區和非暫存區,實際上Git只不過暫存了你運行git add命令時的版本
所以,運行了git add之后又作了修訂的文件,需要重新運行git add把最新版本重新暫存起來
git add test.py
git commit -m 'version-2' #提交更新(如果不使用-m選項時會出現一個默認編輯器讓你輸入更新的標記信息)
git add是個多功能命令,可以用它跟蹤新文件,或者把已跟蹤的文件放到暫存區,還能用于合并時把有沖突的文件標記為已解決狀態等
git status -s:
git status命令的輸出十分詳細,但其用語有些繁瑣。使用 git status -s 命令將得到一種更為緊湊的格式輸出
新添加的未跟蹤文件前面有 ?? 標記
新添加到暫存區中的文件前面有 A 標記
修改過的文件前面有 M 標記
例:M test.py
M test.py
M有兩個可以出現的位置,出現在右邊的 M 表示該文件被修改了但是還沒放入暫存區,出現在靠左邊的 M 表示該文件被修改了并放入了暫存區。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。