拉下一個專案開發

1. 創建一個respo

2. 點選clone and downloads複製專案裡面的clone with HTTPS 複製。

切換到電腦終端機,移動到你要新增資料夾的地方,然後輸入

git clone xxxxx#你複製的

3.success

現有的專案交由git管理

1. 切換到連結到git 的資料夾

cd /Users/hongweishiung/Desktop/learngit

2. git add .

**注意那個點要有空格,但強烈不推薦這樣的作法,這樣的方法雖然方便但很容易會不小心加入一些   其他不必要的    檔案,一個正確的觀念是你必須隨時都很清楚你的檔案狀態,因此最好是手動將你確定要加入的檔案使用        git add 來加入,有一個更好的作法是使用互動模式 git add -i ,在互動模式下你可以方便的選擇你要加入的 檔案,或是移除剛剛不小心加入的檔案 (revert)。

3. git commit -m “FIrst commit”

**一個 commit 在 Git 中就是一個節點,這些 commit 的節點就是未來你可以回朔及追蹤的參考,讓我們未來    在需要的時候都可以回到這些存檔時的狀態。所以後面這串是指你對這個版本的名稱。寫下你這次 commit 的訊息, 例如在這裡寫下 “Add test.rb file to test git function”來表示這一次提交的目的,強烈建議在        commit 的時候要盡量清楚表達這次 commit 的內容為何,因為這會讓你未來要回頭看 code 的時候能讓你快速 的找到你想要找的內容,也能對團隊中其他成員了解你在做什麼。

4. git push

git push

5. success(source:https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository)

**commit message不是一行字時:git commit (會進入文字編輯器Vi!:按下crtl+x輸入,在第一行輸入文字後,按下esc接著會跳到最下面一行並且輸入:wq) : 代表接下來為指令 w 代表寫入 = 儲存 q 代表離開程式 ! 代表強制執行 ,有時候因為一些因素導致安全機制不讓你寫入。

**每次更動一個資料夾中檔案,使用git commit 紀錄版本,會把該版本的message覆寫到該資料夾中每個檔案。因此要記錄某個特定版本的時候要記得git commit [file]去填寫版本message

更新檔案到git :

1. 切換到連結到git 的資料夾

cd /Users/hongweishiung/Desktop/learngit

2. 讓git track 這個檔案

git add .

or

git add -i

**注意那個空白,但強烈不推薦這樣的作法,這樣的方法雖然方便但很容易會不小心加入一些  其他不必要的  檔案,一個正確的觀念是你必須隨時都很清楚你的檔案狀態,因此最好是手動將你確定要加入的檔案使用      git add 來加入,有一個更好的作法是使用互動模式 git add -i ,在互動模式下你可以方便的選擇你要加入的 檔案,或是移除剛剛不小心加入的檔案 (revert)。

3. 把檔案放到本地數據庫,只有新增的檔案沒有被追蹤的才需要此步驟

git commit -m “FIrst commit”

or

git commit howtogit.txt(your file name)

**一個 commit 在 Git 中就是一個節點,這些 commit 的節點就是未來你可以回朔及追蹤的參考,讓我們未來    在需要的時候都可以回到這些存檔時的狀態。所以後面這串是指你對這個版本的名稱。寫下你這次 commit 的訊息, 例如在這裡寫下 “Add test.rb file to test git function”來表示這一次提交的目的,強烈建議在        commit 的時候要盡量清楚表達這次 commit 的內容為何,因為這會讓你未來要回頭看 code 的時候能讓你快速 的找到你想要找的內容,也能對團隊中其他成員了解你在做什麼。

4.把檔案推到遠端數據庫

git push

成功會長這樣

Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 627 bytes | 627.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. To https://github.com/hwh98/learngit.git + 1056c13…b7eb91e master -> master (forced update)

5. success

Git tips

git status

來檢查目前 Git 的狀態,看有沒有Untracked file /changed to be commit Untracked file :完全新的檔案 Changes not staged for commit:已經有被git add進去追蹤了,但是有被更改過等等….,正在等待被提 交至遠端數據庫

git -v

會列出更動的紀錄:加號(+)代表增加的部份,減號(–)代表刪除的部份。

git log

可以看到更詳盡的訊息:

git log —stat

可以看到變更的內容:

git log -p

Git commit message

為何需要git command message的規則:

重新了解一段程式碼更動的脈絡很浪費腦力。雖然這件事情沒辦法完全避免,但是我們可以盡量降低這件事情的複雜 度。Commit messages 正可以做到這點,而我們可以從 commit message看出一個開發者是不是一位好的合作對象。(當然現階段來說並不會到很重要,因為我們開發的專案不是到非常大,但養成一個好習慣、擁有一個好的觀念是很重要,就像是註解你的程式碼)

  • 風格. Markup syntax,wrap margins,文法,大寫慣例,符號慣例。定義這些事情,不要用猜的,並且讓它愈簡單愈好。最後的結果會得到一個非常一致的 log,不僅在閱讀時是一種享受,更重要的是人們真的會經常性的去讀它們。

  • 內容. 什麼樣的資訊需要放置在 commit message body 中?什麼不需要?

  • Metadata. issue tracking IDs, pull request 號碼等等的資料該如何被參照?

規則:

  1.用一行空白行分隔標題與內容
  2.限制標題最多只有 50 字元
  3.標題開頭要大寫
  4.標題不以句點結尾
  5.以祈使句撰寫標題
  6.內文每行最多 72 字
  7.用內文解釋 what 以及 why vs. how

**git commit -m “xxxx”只能攥寫該版本標題
用git commit 就可以才可以標題和文字較多的內文

source:https://blog.louie.lu2017/03/21/%E5%A6%82%E4%BD%95%E5%AF%AB%E4%B8%80%E5%80%8B-git- commit-message/

some error have encounter

first

1.我在commit 到遠端數據庫的時候遇到

Updates were rejected because the tip of your current branch is behind

網路上的版本比你現在電腦的版本還要新!可能是因為有個人也同時在打code他比你早先推上去however,你也可以忽視這個使用 git push -f(force)強迫把自己的推上去把網路上的新版本蓋 掉,但不太建議