亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Git 教程之基本操作詳解

2024-07-21 02:02:44
字體:
來源:轉載
供稿:網友

Git 基本操作

Git 的工作就是創建和保存你項目的快照及與之后的快照進行對比。本章將對有關創建與提交你的項目快照的命令作介紹。

獲取與創建項目命令

git init

用 git init 在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這么做,完全是本地化的。
在目錄中執行 git init,就可以創建一個 Git 倉庫了。比如我們創建 runoob 項目:

$ mkdir runoob$ cd runoob/$ git initInitialized empty Git repository in /Users/tianqixin/www/runoob/.git/# 在 /www/runoob/.git/ 目錄初始化空 Git 倉庫完畢

現在你可以看到在你的項目中生成了 .git 這個子目錄。 這就是你的 Git 倉庫了,所有有關你的此項目的快照數據都存放在這里。

ls -a
. .. .git

git clone

使用 git clone 拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目,或者進行修改。

如果你需要與他人合作一個項目,或者想要復制一個項目,看看代碼,你就可以克隆那個項目。 執行命令:

 git clone [url]

[url] 為你想要復制的項目,就可以了。

例如我們克隆 Github 上的項目:

$ git clone git@github.com:schacon/simplegit.gitCloning into 'simplegit'...remote: Counting objects: 13, done.remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13Receiving objects: 100% (13/13), done.Resolving deltas: 100% (2/2), done.Checking connectivity... done.

克隆完成后,在當前目錄下會生成一個 simplegit 目錄:

$ cd simplegit/ $ ls README Rakefile lib

上述操作將復制該項目的全部記錄。

$ ls -a.    ..    .git   README  Rakefile lib$ cd .git$ lsHEAD    description info    packed-refsbranches  hooks    logs    refsconfig   index    objects

默認情況下,Git 會按照你提供的 URL 所指示的項目的名稱創建你的本地項目目錄。 通常就是該 URL 最后一個 / 之后的項目名稱。如果你想要一個不一樣的名字, 你可以在該命令后加上你想要的名稱。

基本快照

Git 的工作就是創建和保存你的項目的快照及與之后的快照進行對比。本章將對有關創建與提交你的項目的快照的命令作介紹。

git add

git add 命令可將該文件添加到緩存,如我們添加以下兩個文件:

$ touch README$ touch hello.php$ lsREADME hello.php$ git status -s?? README?? hello.php$ 

git status 命令用于查看項目的當前狀態。

接下來我們執行 git add 命令來添加文件:

$ git add README hello.php

現在我們再執行 git status,就可以看到這兩個文件已經加上去了。

$ git status -sA READMEA hello.php$ 

新項目中,添加所有文件很普遍,我們可以使用 git add . 命令來添加當前項目的所有文件。
現在我們修改 README 文件:

$ vim README<pre><p>在 README 添加以下內容:<b># Runoob Git 測試</b>,然后保存退出。</p><p>再執行一下 git status:</p>$ git status -sAM READMEA hello.php

"AM" 狀態的意思是,這個文件在我們將它添加到緩存之后又有改動。改動后我們在執行 git add 命令將其添加到緩存中:

$ git add .$ git status -sA READMEA hello.php

當你要將你的修改包含在即將提交的快照里的時候,需要執行 git add。

git status

git status 以查看在你上次提交之后是否有修改。

我演示該命令的時候加了 -s 參數,以獲得簡短的結果輸出。如果沒加該參數會詳細輸出內容:

$ git statusOn branch masterInitial commitChanges to be committed: (use "git rm --cached <file>..." to unstage) new file:  README new file:  hello.php

git diff

執行 git diff 來查看執行 git status 的結果的詳細信息。

git diff 命令顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別。git diff 有兩個主要的應用場景。

  1. 尚未緩存的改動:git diff
  2. 查看已緩存的改動: git diff --cached
  3. 查看已緩存的與未緩存的所有改動:git diff HEAD
  4. 顯示摘要而非整個 diff:git diff --stat

在 hello.php 文件中輸入以下內容:

<?phpecho '菜鳥教程:www.runoob.com';?>
$ git status -sA READMEAM hello.php$ git diffdiff --git a/hello.php b/hello.phpindex e69de29..69b5711 100644--- a/hello.php+++ b/hello.php@@ -0,0 +1,3 @@+<?php+echo '菜鳥教程:www.runoob.com';+?>

git status 顯示你上次提交更新后的更改或者寫入緩存的改動, 而 git diff 一行一行地顯示這些改動具體是啥。

接下來我們來查看下 git diff --cached 的執行效果:

$ git add hello.php $ git status -sA READMEA hello.php$ git diff --cacheddiff --git a/README b/READMEnew file mode 100644index 0000000..8f87495--- /dev/null+++ b/README@@ -0,0 +1 @@+# Runoob Git 測試diff --git a/hello.php b/hello.phpnew file mode 100644index 0000000..69b5711--- /dev/null+++ b/hello.php@@ -0,0 +1,3 @@+<?php+echo '菜鳥教程:www.runoob.com';+?>

git commit

使用 git add 命令將想要快照的內容寫入緩存區, 而執行 git commit 將緩存區內容添加到倉庫中。

Git 為你的每一個提交都記錄你的名字與電子郵箱地址,所以第一步需要配置用戶名和郵箱地址。

$ git config --global user.name 'runoob'
$ git config --global user.email
test@runoob.com

接下來我們寫入緩存,并提交對 hello.php 的所有改動。在首個例子中,我們使用 -m 選項以在命令行中提供提交注釋。

$ git add hello.php$ git status -sA READMEA hello.php$ $ git commit -m '第一次版本提交'[master (root-commit) d32cf1f] 第一次版本提交 2 files changed, 4 insertions(+) create mode 100644 README create mode 100644 hello.php

 現在我們已經記錄了快照。如果我們再執行 git status:

$ git status
# On branch master
nothing to commit (working directory clean)

以上輸出說明我們在最近一次提交之后,沒有做任何改動,是一個"working directory clean:干凈的工作目錄"。
如果你沒有設置 -m 選項,Git 會嘗試為你打開一個編輯器以填寫提交信息。 如果 Git 在你對它的配置中找不到相關信息,默認會打開 vim。屏幕會像這樣:

# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:#  (use "git reset HEAD <file>..." to unstage)## modified:  hello.php#~~".git/COMMIT_EDITMSG" 9L, 257C

如果你覺得 git add 提交緩存的流程太過繁瑣,Git 也允許你用 -a 選項跳過這一步。命令格式如下:

git commit -a

我們先修改 hello.php 文件為以下內容:

<?phpecho '菜鳥教程:www.runoob.com';echo '菜鳥教程:www.runoob.com';?>

再執行以下命令:

git commit -am '修改 hello.php 文件'[master 71ee2cb] 修改 hello.php 文件 1 file changed, 1 insertion(+)

git reset HEAD

git reset HEAD 命令用于取消已緩存的內容。

我們先改動文件 README 文件,內容如下:

# Runoob Git 測試
# 菜鳥教程

hello.php 文件修改為:

<?phpecho '菜鳥教程:www.runoob.com';echo '菜鳥教程:www.runoob.com';echo '菜鳥教程:www.runoob.com';?>

現在兩個文件修改后,都提交到了緩存區,我們現在要取消其中一個的緩存,操作如下:

$ git status -s M README M hello.php$ git add .$ git status -sM READMEM hello.pp$ git reset HEAD -- hello.php Unstaged changes after reset:M hello.php$ git status -sM README M hello.php

現在你執行 git commit,只會將 README 文件的改動提交,而 hello.php 是沒有的。

$ git commit -m '修改'[master f50cfda] 修改 1 file changed, 1 insertion(+)$ git status -s M hello.php

可以看到 hello.php 文件的修改并為提交。

這時我們可以使用以下命令將 hello.php 的修改提交:

$ git commit -am '修改 hello.php 文件'[master 760f74d] 修改 hello.php 文件 1 file changed, 1 insertion(+)$ git statusOn branch masternothing to commit, working directory clean

簡而言之,執行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的緩存。

git rm

git rm 會將條目從緩存區中移除。這與 git reset HEAD 將條目取消緩存是有區別的。 "取消緩存"的意思就是將緩存區恢復為我們做出修改之前的樣子。

默認情況下,git rm file 會將文件從緩存區和你的硬盤中(工作目錄)刪除。

如果你要在工作目錄中留著該文件,可以使用 git rm --cached:

如我們刪除 hello.php文件:

$ git rm hello.php rm 'hello.php'$ lsREADME

不從工作區中刪除文件:

$ git rm --cached README rm 'README'$ lsREADME

git mv

git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盤上的文件,然后再執行 git add 把新文件添加到緩存區。

我們先把剛移除的 README 添加回來:

$ git add README

然后對其重名:

$ git mv README README.md$ lsREADME.md
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产免费观看久久黄| 日韩精品亚洲元码| 中文字幕亚洲综合久久筱田步美| 亚洲电影免费观看高清| 国产精品免费视频xxxx| 欧美性高跟鞋xxxxhd| 欧美日韩中文在线| 日本久久久久久久久久久| 午夜精品一区二区三区在线播放| 日韩欧美一区二区三区| 一本大道香蕉久在线播放29| 伊人久久免费视频| 亚洲一区二区三区四区在线播放| 在线日韩精品视频| 久久精品国产精品| 久久精品一本久久99精品| 在线观看欧美视频| 亚洲毛茸茸少妇高潮呻吟| 国产视频在线一区二区| 在线视频日韩精品| 国产日韩专区在线| 久久久人成影片一区二区三区| 国产成人精品亚洲精品| 欧美激情精品久久久久久免费印度| 久久久久久亚洲精品| 亚洲激情在线观看视频免费| 欧美性猛交xxx| 美日韩精品视频免费看| 国产精品一区专区欧美日韩| 91美女片黄在线观| 久久成人精品一区二区三区| 久热在线中文字幕色999舞| 91视频88av| 亚洲精品美女在线| 国产精品色视频| 久久久久久网站| 日韩不卡在线观看| 中文字幕久热精品在线视频| 国产精品欧美一区二区三区奶水| 亚洲国产精品yw在线观看| 91亚洲国产成人久久精品网站| 国产综合香蕉五月婷在线| 日本成人黄色片| 日韩电影在线观看中文字幕| 国产伊人精品在线| 久久成人18免费网站| 中文字幕日韩精品在线| 一个人看的www久久| 欧美孕妇毛茸茸xxxx| 欧美黑人xxxx| 欧美成年人在线观看| 亚洲色图国产精品| 欧美精品18videos性欧| 日韩成人xxxx| www.xxxx欧美| 亚洲精品wwww| 91av视频在线播放| 日本亚洲欧美三级| 国产精品爽爽爽爽爽爽在线观看| 亚洲美腿欧美激情另类| 欧美日韩国产91| 欧美精品在线极品| 久久久999精品免费| 亚洲区bt下载| 亚洲大胆人体av| www.亚洲天堂| 久久精品色欧美aⅴ一区二区| 欧美色图在线视频| 亚洲欧美制服中文字幕| 日韩美女写真福利在线观看| 国产日韩精品一区二区| 搡老女人一区二区三区视频tv| 久久国产一区二区三区| 欧美亚洲一级片| 欧美有码在线视频| 欧美男插女视频| 亚洲一区二区三区乱码aⅴ| 国产一区二区三区高清在线观看| 欧美亚洲一级片| 日韩av在线导航| 国产精品久久精品| 精品激情国产视频| 日韩www在线| 国产精品一区二区久久精品| 久久久最新网址| 欧美精品久久久久久久久| 久久久www成人免费精品| 亚洲视频在线观看| 欧美激情精品久久久久久| 国产精品极品美女在线观看免费| 色妞久久福利网| www.久久草.com| 精品国产一区二区三区久久狼黑人| 国产成人拍精品视频午夜网站| 久久国内精品一国内精品| 亚洲人成网站777色婷婷| 欧美激情伊人电影| 日韩欧美国产一区二区| 国产极品精品在线观看| 国产精品 欧美在线| 欧洲亚洲免费在线| 国产精品自产拍在线观| 国产精品久久久久福利| 国产最新精品视频| 怡红院精品视频| 久久久久久成人| 亚洲第一精品久久忘忧草社区| 91精品视频免费看| 国产精品自拍偷拍视频| 久久中文字幕在线视频| 久久精彩免费视频| 少妇激情综合网| 久久婷婷国产麻豆91天堂| 91亚洲人电影| 日韩精品免费在线| 亚洲自拍高清视频网站| 综合网日日天干夜夜久久| 国内精品久久久久久久久| 亚洲人精品午夜在线观看| 亚洲丝袜在线视频| 亚洲福利小视频| 亚洲最大av网| 日韩欧美在线观看| 黑人狂躁日本妞一区二区三区| 黄色成人av在线| 91九色单男在线观看| 欧美在线观看一区二区三区| 亚洲高清久久久久久| 亚洲人精选亚洲人成在线| 日韩精品中文字幕有码专区| 亚洲色图25p| 欧美性xxxxxxxxx| 国产精品爽爽爽| 欧美一性一乱一交一视频| 亚洲字幕在线观看| 在线视频亚洲欧美| 久久精品国产99国产精品澳门| 精品成人69xx.xyz| 日韩精品高清视频| 91免费综合在线| 欧美在线观看网址综合| 一本色道久久88精品综合| 亚洲午夜精品久久久久久久久久久久| 国产最新精品视频| 热久久免费视频精品| 国产自摸综合网| 久久久久久久久久久av| 国产精品偷伦视频免费观看国产| www国产91| 亚洲xxxx3d| 在线视频精品一| 国内精品免费午夜毛片| 国产精品爽爽ⅴa在线观看| 91久久久久久久一区二区| 97精品伊人久久久大香线蕉| 91国产美女视频| 欧美专区在线播放| 国产成人鲁鲁免费视频a| 最近2019好看的中文字幕免费| 久久久久99精品久久久久| 久久久久久久网站| 欧美综合一区第一页| 日韩av网站电影| 日韩精品免费在线视频观看|