2013年7月2日 星期二

git 指令


上傳

git status
觀察現在git的情況

如果有資料未更新
git add .
加入所有資料到本地
git commit -m "訊息"
為要上傳的資料寫上訊息
git push
將東西push到遠端

git add . 不會把刪除的檔案也放入 status
git add -u 才會把刪除的檔案放入



@不要全部都push上去

git commit -a

在輸入 訊息
:wq
存檔
最後在git push


history  列出以前打過的指令

git reset --hard 回到最後commit的點上

branch的新增


先在本地new branch
git branch (branch_name)

接下來看是否已經在本地產生了branch
git branch

看一下遠端是否有重複的branch
git branch -r

將branch傳到遠端
git push origin (branch_name) 

刪除branch


刪除本地branch
git branch -d (branch_name)

刪除遠端的branch
git push origin (branch_name)


git - 基礎指令

轉換本地branch
git checkout (branch_name)

Clone: 會把遠端的repo整個專案抓下來,放在目前路徑下的新目錄中。(所以不需要先把新目錄建立成Repo,就可以整包抓下來,隨包附上.git目錄)

Pull: 會把遠端的repo整個專案抓下來,跟你目前所在的Repo及所用的Branch作合併(Merge),此指令等同Fetch+Merge。

Fetch: 會把遠端的repo整個專案抓下來,但不跟你目前所用的branch合併,而是放在本地中的另一個Brance(remoteBranch)。



git - 需要pull 遠端的別人的 branch時


git pull origin/(branch name)
或是用git x REMOTES => origin 找到自己要的branch 點右鍵 Create branch that tracks origin/(branch name)


git - pull

要pull遠端

git pull origin (branch name)


git - 尚未commit 前想要跳branch 系統告知要先commit 解除更新資料


git status
看有哪些更新的資料
git reset HEAD^

ex:Unstaged changes after reset:
M ThermoDock_passionbean.xcodeproj/project.xcworkspace/xcuserdata/john6812711.xcuserdatad/UserInterfaceState.xcuserstate

git checkout (ThermoDock_passionbean.xcodeproj/project.xcworkspace/xcuserdata/john6812711.xcuserdatad/UserInterfaceState.xcuserstate)

git checkout (branch name)想要跳往的branch


git -reset


首先指令下 git reset "某次 commit 的 SHA 值",這裡注意,給出的 SHA 值就會回到那次 commit 結束後的狀態。
例如 git reset a8b5a0afea1e1f5faccda4a698c0002bdcc7bf892

這樣 commit 的狀態就會回到該時間點,但是修改的內容還是目前最新的狀態,因此 git status 會發現這段時間 modified 過的檔案。
接著下 git checkout -f ,checkout可以幫你把更動過的檔案,回到最後一次 commit 時的狀態,所以檔案的狀態就會變成跟倒回的時間點相同。

最後下 git reset original/master,將 commit 的位置直接指向最新的地方,然後 commit 並 push ,就可以看到 repository 又回到你指定時間點的狀態,而且中間變動過的 commit log 也都還在!
注意一點,commit 指向的位置,可能隨著你的專案還不同,像我現在的位置是指向 production/master 。




git 回到特定的節點

git reset <HHA-1>
git reset HEAD^ (留著修改在 working tree)
git reset HEAD^ --soft (修改放到 staging area)
git reset HEAD^ --hard (完全清除)

刪除不同的檔案git clean -df


# Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`)
git clean -fd


git fetch --all  
git reset --hard origin/master

0 意見:

張貼留言