2014年9月20日 星期六

git指令

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]


相關網址:

  1. http://note.tc.edu.tw/818.html
  2. http://blog.csdn.net/ithomer/article/details/7529022
  3. http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/
  4. http://ihower.tw/git/
  5. http://blog.miniasp.com/post/2013/08/19/Learning-Git-Part-1-Installation-Options-Tool-Usage-on-Local.aspx
  6. http://sdlong.logdown.com/posts/168554-learn-rails-4
  7. 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
  8. 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

沒有留言:

張貼留言