windows
-----------------------------------------------
環境變數:
;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\cmd
-----------------------------------------------
-----------------------------------------------
基本設定
-----------------------------------------------
$ git config --global user.name "example_name"
$ git config --global user.email "example_email@"
#查看目前設定
$ git config --list
#查看目前狀況
$ git status
將專案下載至本機
-----------------------------------------------
#GIT檔案位置
$ git clone
[url]
#將檔案下載
$ git pull
分支branch
-----------------------------------------------
切換置專案根目錄
#查本機端分支
$ git branch
#建立分支
$ git branch
[name]
#查伺服器分支
$ git branch -r
#切換置分流branch(如:$ git checkout master)
$ git checkout
[name]
#讀取另一個branch檔案至目前branch相同檔案做比較
$ git checkout -p [branch] [branch-file] ex: git checkout -p dev common.php
#複製別的分支目前最新的檔案或是本分支目前最新檔案
$ git check [分支名稱(有:指向分支,沒:指向目前分支)] —vagrant/laravel/app/routes.php(檔案絕對路徑(複製檔案至目前分支))
#顯示目前branch of new commit
$ git show-branch —more=數值
#查看分支詳細資料
$ git branch -v
#刪除分支
$ git branch -D [branch-name]
#透過目前branch 建立一樣的new branch
$ git branch -v [new_branch] # 建立 local branch
$ git checkout -b [new_branch] # 建立 local branch
#reset remote commit
$ git push -f
恢復檔案
-----------------------------------------------
//可把別分支commit
移植至目前分支commit
//目前分支為master
$ git checkout topic
$ git rebase master
or
$ git rebase master topic
#回復移植動作-送交被解決的衝突,在下一個送交來回復動作
$ git rebase —continue
#忽略移植動作-發現送交沒有存在必要,可忽略,並繼續處理衝突送交
$ git rebase —skip
#回復所有移植動作-將發現rebase動作造成一團亂時,可回復至下指令前的狀態
$ git rebase —abort
#重新排序commit,呈現順序由舊>新
$ git rebase -i master~3<<分支~數值>>(尚未push的commit)
#回復已被修改檔案
$ git checkout — [benchmarks.rb]
#這是一個大家常用的作法,假如您想要修改 commit 訊息,或者是尚未修改好檔案,下完此指令,您會發現 reset 會幫忙把舊的 head 複製到 .git/ORIG_HEAD
$ git reset --soft HEAD^
追蹤檔案
-----------------------------------------------
//必須先將檔案add再commit,此時才可以使用push完整將修改檔案上傳至伺服器
add此好處在於,當無網路時可以先將修改檔案進行暫存
#將全部新增、修改,新增commit
$ git add .
#將檔案列入commit清單
$ git add
[file_name]
//#編輯過檔案也要add
//$ git add modify-file
#只加入修改過檔案,新增檔案不加入
$ git add -u
Commit檔案
-----------------------------------------------
#修正commit的文件內容或是新增及編輯檔案
$ git commit —amend
#確認並撰寫修改記錄文件檔
$ git commit
上傳檔案(Push)
-----------------------------------------------
#更改送交者資訊
$ git commit —amend —author “user@example.com”
#將檔案上傳
$ git push
#上傳local branch 至遠端branch
# 建立遠端 branch (將 new_branch 建立到遠端)
#需先在本機建立branch
$ git push -u origin [new_branch]
刪除檔案
-----------------------------------------------
如果以追蹤檔案,需先將檔案成暫存中移除,才可以完整在git下進行刪除
#刪除占存檔案
$ git rm [file_name] [new_file_name]
檔案重新命名
-----------------------------------------------
#搬移檔案或重新命名
$ git mv
暫存檔案
-----------------------------------------------
#暫存檔案
$ git stash
#將暫存撈取出來
$ git stash pop
版本差異查詢
-----------------------------------------------
#檢視目前已暫存的變更:
$ git diff --cached
#查看遠端分支資訊
$ git ls-remote origin
or
$ git remote show origin
#查看尚未修改檔案與原本差異
$ git diff
#查詢記錄檔
$ git log
#比較兩個版本差異
$ git log
[log_num]..
[log_num]
#查看自己歷史記錄
$ git reflog
#可查看此檔案每行記錄
$ git blame
[檔案路徑]
#忽略某些檔案
//通常讀者會有一類不想讓Git自動新增,也不希望它們被列入未被追蹤的檔案。 這些通常是自動產生的檔案,例如:記錄檔或者編譯系統產生的檔案。 在這情況下,讀者可建立一個名為.gitignore檔案,列出符合這些檔案檔名的特徵。 以下是一個範例:
cat [filename]
相關網址:
- http://note.tc.edu.tw/818.html
- http://blog.csdn.net/ithomer/article/details/7529022
- http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/
- http://ihower.tw/git/
- http://blog.miniasp.com/post/2013/08/19/Learning-Git-Part-1-Installation-Options-Tool-Usage-on-Local.aspx
- http://sdlong.logdown.com/posts/168554-learn-rails-4
- http://git-scm.com/book/zh-tw/Git-%E5%9F%BA%E7%A4%8E-%E6%8F%90%E4%BA%A4%E6%9B%B4%E6%96%B0%E5%88%B0%E5%84%B2%E5%AD%98%E5%BA%AB
- http://homeserver.com.tw/2013/09/24/git-%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4/
http://git-scm.com/book/zh-tw/v1/Git-%E5%9F%BA%E7%A4%8E-%E5%BE%A9%E5%8E%9F
http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_tw/ch07.html
//install
http://www.kafeitu.me/git/2012/04/10/install-lastest-git-on-ubuntu.html?1348458636http%3A%2F%2Fwww.kafeitu.me%2Fgit%2F2012%2F04%2F05%2Finstall-git-1-7-10-use-tar.html