Study:Git的簡單使用

這裏默認已經安裝好 Git ,並註冊了 GitHub 帳號,如尚存疑惑,請查看:《Ubuntu:初識GitHub和Git》https://blog.csdn.net/qq_41297934/article/details/103263531

一、創建新倉庫

本地文件通過 Git 上傳到 GitHub 上,需在本地創建新倉庫。

1. 創建項目文件夾 Prodect ,該文件包含兩個文件 first.pyREADME.md

cfl@Ambitioner:~/Project$ ls -a
.  ..  first.py  README.md

2. 在已創建的項目文件夾 Project 下,使用終端創建新的 git 倉庫:

$ git init

cfl@Ambitioner:~/Project$ git init
已初始化空的 Git 倉庫於 /home/cfl/Project/.git/

cfl@Ambitioner:~/Project$ ls -a
.  ..  first.py  .git  README.md

二、檢出倉庫

從本地倉庫或者遠程服務器倉庫克隆一個新的倉庫。

1. 從本地倉庫克隆:(path 爲原倉庫所在位置)

$ git clone path

cfl@Ambitioner:~/PycharmProjects$ git clone /home/cfl/Project
正克隆到 'Project'...
完成。

2. 從遠程服務器克隆:(usernameGitHub 用戶名,repository 爲倉庫名)

$ git clone https://github.com/username/repository

cfl@Ambitioner:~/Project$ git clone https://github.com/Ambitioner-c/airbnb
正克隆到 'airbnb'...
remote: Enumerating objects: 51, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 51 (delta 18), reused 47 (delta 15), pack-reused 0
展開對象中: 100% (51/51), 完成.

三、工作流

你的本地倉庫由 git 維護的三棵“樹”組成。第一個是你的工作目錄,它持有實際文件;第二個是緩存區(Index,它像個緩存區域,臨時保存你的改動;最後是 HEAD,指向你最近一次提交後的結果。

四、添加與提交

步驟1. 第一步是將修改的部分添加到緩存區:

$ git add <filename>/*

cfl@Ambitioner:~/Project$ git add *

或者,添加指定文件

cfl@Ambitioner:~/Project$ git add first.py

步驟2. 實際提交改動到 HEAD :( message 爲代碼提交的信息)

$ git commit -m 'message'

cfl@Ambitioner:~/Project$ git commit -m 'First commit.'
[master (根提交) eeaa909] First commit.
 2 files changed, 2 insertions(+)
 create mode 100644 README.md
 create mode 100644 first.py

步驟3. 修改已經提交到 HEAD ,但未提交到遠程服務器倉庫,下一節將講述如何提交遠程服務器。

五、推送改動

HEAD 中的修改提交到遠程服務器倉庫。

1. 已經克隆現有倉庫,把本地倉庫推送至遠端倉庫:

$ git push https://github.com/Ambitioner-c/Project.git master

2. 沒有克隆現有倉庫,把本地倉庫推送至遠端倉庫:

$ git remote add origin https://github.com/Ambitioner-c/Project.git
$ git push -u origin master

cfl@Ambitioner:~/Project$ git remote add origin https://github.com/Ambitioner-c/Project.git
cfl@Ambitioner:~/Project$ git push -u origin master 
Username for 'https://github.com': Ambitioner-c
Password for 'https://[email protected]': 
對象計數中: 4, 完成.
Delta compression using up to 4 threads.
壓縮對象中: 100% (2/2), 完成.
寫入對象中: 100% (4/4), 301 bytes | 150.00 KiB/s, 完成.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/Ambitioner-c/Project.git
 * [new branch]      master -> master
分支 'master' 設置爲跟蹤來自 'origin' 的遠程分支 'master'。

六、分支

分支是用來將特性開發絕緣開來的。在你創建倉庫的時候,master 是“默認的”。在其他分支上進行開發,完成後再將它們合併到主分支上。

1. 創建一個新的分支 feature:

$ git checkout -b feature

cfl@Ambitioner:~/Project$ git checkout -b feature
切換到一個新分支 'feature'

2. 選擇進入的分支/主分支:

$ git checkout feature/master

cfl@Ambitioner:~/Project$ git checkout master 
切換到分支 'master'

3. 刪掉分支:

$ git brance -d feature

cfl@Ambitioner:~/Project$ git branch -d feature 
已刪除分支 feature(曾爲 eeaa909)。

4. 將分支推送到遠端倉庫

注:本地創建的分支只有推送到遠端倉庫纔可以開源。

$ git push https://github.com/Ambitioner-c/Project.git feature

cfl@Ambitioner:~/Project$ git push https://github.com/Ambitioner-c/Project.git feature 
Username for 'https://github.com': Ambitioner-c
Password for 'https://[email protected]': 
Total 0 (delta 0), reused 0 (delta 0)
remote: 
remote: Create a pull request for 'feature' on GitHub by visiting:
remote:      https://github.com/Ambitioner-c/Project/pull/new/feature
remote: 
To https://github.com/Ambitioner-c/Project.git
 * [new branch]      feature -> feature

七、更新與合併

爲了演示,我們在 feature 分支中修改 README.ed 文件結果如下:

cfl@Ambitioner:~/Project$ git add README.md 
cfl@Ambitioner:~/Project$ git commit -m 'First commit.'
[master 63a390d] First commit.
 1 file changed, 2 insertions(+)
cfl@Ambitioner:~/Project$ git push https://github.com/Ambitioner-c/Project.git feature 
Username for 'https://github.com': Ambitioner-c
Password for 'https://[email protected]': 
Everything up-to-date

1. 更新本地倉庫至最新版本:

$ git pull

cfl@Ambitioner:~/Project$ git pull 
來自 https://github.com/Ambitioner-c/Project
 * [新分支]          feature    -> origin/feature
已經是最新的。

2. 查看修改的部分

$ git diff master feature

cfl@Ambitioner:~/Project$ git diff master feature 
diff --git a/README.md b/README.md
index 6d45873..a03bcaf 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1 @@
 This is first project.
-
-First commit.

3. 合併其他分支到當前分支(主分支 master ):

$ git checkout master
$ git merge feature

cfl@Ambitioner:~/Project$ git checkout master 
已經位於 'master'
您的分支領先 'origin/master' 共 1 個提交。
  (使用 "git push" 來發布您的本地提交)
cfl@Ambitioner:~/Project$ git merge feature 
已經是最新的。

更多信息請查看官方文檔:https://git-scm.com/book/zh/v2;簡易指南:https://www.bootcss.com/p/git-guide/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章