大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Git教程
Git標簽管理
Git分支
Git操作
Git應用
GitHub應用
IDEA對于Git&GitHub的支持
Git與GitHub使用注意事項

Git基本操作

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

一、獲取與創(chuàng)建項目命令

⒈ git init

用 git init 在目錄中創(chuàng)建新的 Git 倉庫。 你可以在任何時候、任何目錄中這么做,完全是本地化的。

在目錄中執(zhí)行 git init,就可以創(chuàng)建一個 Git 倉庫了。比如我們創(chuàng)建bjpowernode項目:

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

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

ls -a
.    ..    .git

⒉ git clone

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

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

 git clone [url]

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

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

$ git clone [email protected]:schacon/simplegit.git
Cloning into 'simplegit'...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving 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
$ ls
HEAD        description info        packed-refs
branches    hooks       logs        refs
config      index       objects

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

二、基本快照

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

⒈ git add

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

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

git status 命令用于查看項目的當前狀態(tài)。

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

$ git add README hello.php 

現(xiàn)在我們再執(zhí)行 git status,就可以看到這兩個文件已經(jīng)加上去了。

$ git status -s
A  README
A  hello.php
$ 

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

現(xiàn)在我們修改 README 文件:

$ vim README

在 README 添加以下內(nèi)容:# bjpowernode Git 測試,然后保存退出。

再執(zhí)行一下 git status:

$ git status -s
AM README
A  hello.php

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

$ git add .
$ git status -s
A  README
A  hello.php

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

⒉ git status

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

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

$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   README
    new file:   hello.php

⒊ git diff

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

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

① 尚未緩存的改動:git diff

② 查看已緩存的改動: git diff --cached

③ 查看已緩存的與未緩存的所有改動:git diff HEAD

④ 顯示摘要而非整個 diff:git diff --stat

在 hello.php 文件中輸入以下內(nèi)容:

<?php
echo '動力節(jié)點:www.dabaquan.cn';
?>

$ git status -s
A  README
AM hello.php
$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo '動力節(jié)點:www.dabaquan.cn';
+?>

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

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

$ git add hello.php 
$ git status -s
A  README
A  hello.php
$ git diff --cached
diff --git a/README b/README
new file mode 100644
index 0000000..8f87495
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+# bjpowernode Git 測試
diff --git a/hello.php b/hello.php
new file mode 100644
index 0000000..69b5711
--- /dev/null
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo '動力節(jié)點:www.dabaquan.cn';
+?>

⒋ git commit

使用 git add 命令將想要快照的內(nèi)容寫入緩存區(qū), 而執(zhí)行 git commit 將緩存區(qū)內(nèi)容添加到倉庫中。

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

$ git config --global user.name 'bjpowernode'
$ git config --global user.email [email protected]

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

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

現(xiàn)在我們已經(jīng)記錄了快照。如果我們再執(zhí)行 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 文件為以下內(nèi)容:

<?php
echo '動力節(jié)點:www.dabaquan.cn';
echo '動力節(jié)點:www.dabaquan.cn';
?>

再執(zhí)行以下命令:

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

⒌ git reset HEAD

git reset HEAD 命令用于取消已緩存的內(nèi)容。

我們先改動文件 README 文件,內(nèi)容如下:

# bjpowernode Git 測試
# 動力節(jié)點 

hello.php 文件修改為:

<?php
echo '動力節(jié)點:www.dabaquan.cn';
echo '動力節(jié)點:www.dabaquan.cn';
echo '動力節(jié)點:www.dabaquan.cn';
?>

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

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

現(xiàn)在你執(zhí)行 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 status
On branch master
nothing to commit, working directory clean

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

⒍ git rm

如果只是簡單地從工作目錄中手工刪除文件,運行 git status 時就會在 Changes not staged for commit 的提示。

要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除,然后提交。可以用以下命令完成此項工作

git rm <file>

如果刪除之前修改過并且已經(jīng)放到暫存區(qū)域的話,則必須要用強制刪除選項 -f

git rm -f <file>

如果把文件從暫存區(qū)域移除,但仍然希望保留在當前工作目錄中,換句話說,僅是從跟蹤清單中刪除,使用 --cached 選項即可

git rm --cached <file>

如我們刪除 hello.php文件:

$ git rm hello.php 
rm 'hello.php'
$ ls
README

不從工作區(qū)中刪除文件:

$ git rm --cached README 
rm 'README'
$ ls
README

可以遞歸刪除,即如果后面跟的是一個目錄做為參數(shù),則會遞歸刪除整個目錄中的所有子目錄和文件:

git rm –r * 

進入某個目錄中,執(zhí)行此語句,會刪除該目錄下的所有文件和子目錄。

⒎ git mv

git mv 命令用于移動或重命名一個文件、目錄、軟連接。

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

$ git add README 

然后對其重名:

$ git mv README  README.md
$ ls
README.md

 

全部教程
主站蜘蛛池模板: 亚洲国产精品国产自在在线 | 国产一级二级三级 | 午夜久久久久久久 | 国产精品久久久久影视青草 | 国产品精人成福利视频 | 99热精品在线免费观看 | 深夜男人网站 | 久久riav| 天天透天天操 | 麻豆国产原创 | 青草精品视频 | 在线观看精品一区 | 99精品视频看国产啪视频 | 日本人一级毛片视频 | 日本制服丝袜在线 | 伊人久久综合热青草 | 黑人边吃奶边扎下面激情视频 | 日本中文字幕永久在线 | 国产成人亚洲综合无 | 波多野吉衣一区二区三区四区 | 亚洲水蜜桃久久综合网站 | 欧美狠狠 | 一区在线免费 | 日本免费的一级v一片 | 日本综合色 | 国产福利一区二区在线精品 | 69视频在线观看福利视频 | 性猛交毛片 | 欧美一区二区在线免费观看 | www精品视频| 毛片视| 亚洲精品一区专区 | 顶级欧美色妇xxxxbbbb | 中文字幕一区二区三区有限公司 | 日本伊人| 91亚洲精品福利在线播放 | 四虎影视久久 | 日本国产精品 | 热久久最新地址 | 国产成人综合亚洲 | 久久97精品久久久久久久看片 |