Open zuppachu opened 5 years ago
git init
rm -r .git
git status
#
git add:加入版本控制
git add
git add code.js
git add .
git rm --cached code.js
git commit:建立一個新版本
git commit
git commit -m "first commit"
git commit -am "second commit"
git commit 的時候出現錯誤,跳出了一個要你設定帳號跟姓名的畫面,請輸入以下指令: git config --global user.name "your name" git config --global user.email "youremail"
git log
git log --oneline
git checkout
git checkout 某版本號(前七碼也可)
git checkout master
.gitignore
touch .gitignore
vim
vim .gitignore 按 i 編輯,輸入想忽略的檔案名稱 跳出後,打 :wq 存檔離開
git diff
為什麼我們需要 branch ? 因為 branch 可以讓我們平行時空,各做各的事,在最後合併兩條分支變成一個最終版本。
git branch -v:檢查目前有哪些 branch & 在哪條 branch 上
git branch -v
git branch 123:建立命名為 123 的分支
git branch 123
git branch -d 123:刪除名叫 123 的分支
git branch -d 123
git checkout 123:從當前分支切換到名叫 123 的分支去
git checkout 123
git merge 123:將 123 分支合併進來~ 如果在 master 主支上,執行 git merge 123 ,表示 123 分支將合併進 master 主支內。
git merge 123
遇到衝突怎辦? 手動解決~ CONFLICT:Merge conflict in XX檔 git status 檢查哪個檔案 unmerged 進入 XX檔 看見以下內容,選擇要更改的內容,最後用 git commit -am "新檔名" 儲存。 <<<<<< HEAD (表示目前所在的 branch) xcvvbnm (內容) ====== (分隔線) >>>>> new-feature (分歧的支線) djfoieejfioe (內容) Git狀況劇 我 commit了,但我想改 commit message git commit --amend:可更改 commit message
遇到衝突怎辦? 手動解決~
<<<<<< HEAD (表示目前所在的 branch) xcvvbnm (內容) ====== (分隔線) >>>>> new-feature (分歧的支線) djfoieejfioe (內容)
git commit --amend:可更改 commit message
git commit --amend
git reset HEAD^ = git reset HEAD^ --soft: 上一個 commit 版本不要了,但內容還是要,只想將內容做一些修正。修正後,再 commit 回去。上一個 commit 會直接被修正的取代掉。
git reset HEAD^ = git reset HEAD^ --soft
git reset HEAD^ --hard: 直接刪除上一個 commit 版本,上一個 commit 版本內容也一併都被刪除掉。
git reset HEAD^ --hard
git checkout -- 檔案名稱:此檔案回復成前次內容 git checkout -- .:將有修改但未 commit 的所有檔案都回復成前一次的內容
git checkout -- 檔案名稱
git checkout -- .
git branch -m 想改成的新名稱: 先切換到要修改名稱的分支,再輸入 git branch -m 想改成的新名稱即可修改
git branch -m 想改成的新名稱
git checkout 分支: 換到某條分支 或 將遠端的分支抓下來
git checkout 分支
同學筆記 1:Git & github 重點筆記 同學筆記 2:交作業與同步流程
用資料夾比喻 Git 的原理
Git 版本控制指令
git init
: 初始化,我們要在這個資料夾下對此專案做版本控制囉rm -r .git
:如欲刪除版本控制 #git status
:看 git 版本控制的狀態#
git add
:加入版本控制git add code.js
:將 code.js 加入版本控制git add .
: 將全部檔案加入版本控制 (Staged 放入暫存區,還沒正式建成新版本)git rm --cached code.js
:將 code.js 取消版本控制 (變回 Untracked, 沒加入版本控制狀態) #git commit
:建立一個新版本git commit -m "first commit"
:給予 commit message 才能建立新的版本git commit -am "second commit"
:為 git add + git commit ,用於更改的檔案時。新加入的檔案不適用,需自己先 git add 再 git commit。#
git log
: 檢查歷史紀錄git log --oneline
:顯示簡短的歷史紀錄#
git checkout
:回到某版本 或是 切換到某分支去git checkout 某版本號(前七碼也可)
:切換回此版本號的狀態git log
:只能看到某本版號當時的歷史狀態git checkout master
:切換回最新版本號的狀態#
.gitignore
:要忽略的檔案.gitignore
步驟:touch .gitignore
vim
編輯器內打:#
git diff
:在 commit 之前,看見檔案前後的差異git branch:切換版本號 或是 切換到某分支去
為什麼我們需要 branch ? 因為 branch 可以讓我們平行時空,各做各的事,在最後合併兩條分支變成一個最終版本。
git branch -v
:檢查目前有哪些 branch & 在哪條 branch 上git branch 123
:建立命名為 123 的分支git branch -d 123
:刪除名叫 123 的分支git checkout 123
:從當前分支切換到名叫 123 的分支去git merge 123
:將 123 分支合併進來~ 如果在 master 主支上,執行 git merge 123 ,表示 123 分支將合併進 master 主支內。我 commit了,可是我後悔了
git reset HEAD^ = git reset HEAD^ --soft
: 上一個 commit 版本不要了,但內容還是要,只想將內容做一些修正。修正後,再 commit 回去。上一個 commit 會直接被修正的取代掉。git reset HEAD^ --hard
: 直接刪除上一個 commit 版本,上一個 commit 版本內容也一併都被刪除掉。我還沒 commit,但我改的內容我不想要了
git checkout -- 檔案名稱
:此檔案回復成前次內容git checkout -- .
:將有修改但未 commit 的所有檔案都回復成前一次的內容我想改 branch 的名字
git branch -m 想改成的新名稱
: 先切換到要修改名稱的分支,再輸入git branch -m 想改成的新名稱
即可修改想把遠端的 branch 抓下來
git checkout 分支
: 換到某條分支 或 將遠端的分支抓下來