【Git】 隨手筆記

目錄

  1. git add 新增檔案
  2. git commit 提交檔案
  3. git reset 回復檔案
  4. git stash 暫存檔案
  5. git branch 分支
  6. git checkout 切換
  7. git tag 標記
  8. git log 記錄
  9. git pull 更新遠端回來
  10. git push 送檔案到遠端
  11. 遇到的問題

指令

git add 新增檔案

git add . 新增所有檔案
git add -u 新增修改過的部分(不包含Untracked)
git add -i add的互動模式 [參考]

git commit 提交檔案

git commit -m 'commit massage' 單行提交(不進入 vi 編輯器)
git commit --amend 編輯前一次的 commit 訊息

git reset 回復檔案

git reset 放棄 add,但保留修改
git reset --hard 放棄所有修改,回到上個 commit 完成後的狀態
git reset --hard HEAD 回到最新一個 commit 版本
git reset --hard HEAD^ 回到前一個 commit 版本
git reset --hard HEAD^^ 回到前前一個 commit 版本
git reset --hard HEAD~2 回到前前前一個 commit 版本
git reset --soft HEAD^ 回復到 commit 提交前的狀態( HEAD^ 代表前 1 次)

git stash 暫存

git stash 將修改的部分丟進暫存
git stash list 列出暫存的資料
git stash pop 取出暫存

git branch 分支

git branch 列出所有 branch
git branch new-branch 依此 branch 建立新的 branch
git branch new-branch master 從 master 產生新的 branch
git branch push -u origin new_branch 建立遠端 branch
git branch -f branchName commit-id 把某個 branch 強制移動到某個commit
git branch -a 顯示所有branch(包含remote)
git push origin :branch 刪除遠端branch

git checkout 切換

git checkout branch-name 切換到 branch-name
git checkout master 切換到 master
git checkout -b new-branch master 從 master 建立 new-branch 並同時切換過去
git checkout -b new-branch 從此 branch 建立 new-branch
git checkout -b newlocalbranchname origin/branch-name 建立來自remote的分支
git checkout -- file-name 放棄對檔案的修改(未commit前)

git tag 標記

git tag -l 列出所有 tag
git tag -a tag-name -m 'tag massage' 在目前的 HEAD 建立 tag-name 的 tag,並建立 tag massage 訊息
git tag tag-name commit-id 在 commit-id 的 HEAD,建立 tag-name 的 tag

git log 記錄

git log 將所有 log 秀出來
git log --graph --oneline --all 展出 branch 水管圖

git pull 更新遠端回來

git pull origin master 更新遠端origin(預設)的remote裡面的master分支回來

git push 送檔案到遠端

git push origin master 更新到遠端origin(預設)的remote裡面的master分支
git push remote yourbranch:master 更新某個branch到remote的master上(通常只能夠master push 到 master)

git clean 清除檔案

git clean -f 刪除專案 untracked 的檔案
git clean -f -d 刪除專案 untracked 的檔案、資料夾
git clean -f -X 刪除專案 ignored 的檔案


問題

§【 ignore mode change 】

原因:檔案在跟win交換之後會產生chmod的改變,Git會判斷為以做修改
解法: git config core.fileMode false
參考連結: How do I make git ignore mode changes (chmod)?

§【 Download 回來的 Repositories 沒有出現其他 Branch 】

原因:只會抓基本的,其他要再重新建立
解法: git checkout -b newlocalbranchname origin/branch-name
參考連結: How to download a branch with git?

§【 放棄未 untracked 的檔案 】

原因:有時候要放棄修改過的檔案
解法: git clean -f -d
參考連結: git reset --hard HEAD leaves untracked files behind

§【 Windows 平台處理斷行字元 (CRLF) 的注意事項 】

原因:
解法:
參考連結: Git 在 Windows 平台處理斷行字元 (CRLF) 的注意事項

§【 Git高階的12個指令 】

參考連結: 你需要知道的12个Git高级命令

Comments

comments powered by Disqus