[ GIT ] GIT使用筆記

GIT 基本指令與筆記




作業環境為 Windows 10,使用 Git Shell 進行操作

設定:

-- 設定使用者名稱與電子郵件 --

> git config --global user.name "user"
> git config --global user.email "user@mail.com"
 
 
-- 設定文字編輯器 -- ( 以 Subline Text 3 為例 )
 
git config core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe'" 
 
 

-- 基本操作 --
 

mkdir __資料夾名稱__ >> 建立資料夾

cd _資料夾或路徑_ >> 移動到某資料夾

git init >> 對目前位置進行git初始化 ( 會多了一個.git的版控資料夾 )


echo Hello World > test.txt >> 新增一個內容為Hello World的 test.txt 檔案 
type test.txt >> 產生檔案 ( ? )


git add __檔案__ >> 將檔案加入 Stage
 
git commit -m "add __檔案__" >> 提交檔案至 Repo
 
 
gitk --all >> 開啟圖形化介面

git branch >> 查看所有 branch 與目前所在位置
 
git branch _branch_ >> 建立新的 branch 
 
git checkout _branch_ >> 切換至指定 branch 
 
git log >> 查看先前紀錄
(( 如果紀錄較長,跑完時會卡在 END,此時按下 Q 即可離開 )) 
 
 
git --no-pager log --oneline -n 10 >> 簡易 log 訊息,
 
 
 
 
-- branch 合併與比對 -- 
 
git rebase >> 基於某個 branch 的內容將另一個 branch 合併
 
 -- 例如我在 cat 這個branch,我key入 git rebase master
 -- 此時 cat 這個 branch 就會依據 master 進行合併

 
git diff _a_ _b_ >> 查看 a 與 b 兩個 branch 不同之處 
 
git marge _branch_ >> 將指定的 branch 執行合併 (( !! 注意與 rebase不同 !! )) 
 
 
git reset --hard ORIG_HEAD >> 取消上一次的 marge 
 
git reset HEAD _file_ >> 取消加入stage的某個檔案 
 
git checkout -- _file_ >> 放棄修改檔案,回復至上次commit時的狀態
 
git commit --amend >> 修改上一次的commit  

git reset --hard HEAD >> 強制回復到上一次 commit 時的版本 
 
git reset --hard HEAD^n >> 強制回復到上n次 commit 時的版本


 
-- pull request --
 
1. 至GitHub複製SSH,格式如:git@github.com:KenGuerrilla/xxxxxxxxx.git
 
2. 回到 Terminal 設定要上傳repo的資料夾
   指令: git remote add origin git@github.com:<複製的SSH>
 
3. 上傳,指令:git push -u origin master
   上傳branch,指令:git push origin <branch>  
 
 
 
------誤刪檔案的還原方式------ 
 
使用Git下指令時往往會不小心走到一個意想不到的步驟
 
例如東西Commit或者PUSH出去之後才發現問題大了 

這時候除了冒冷汗咒罵之外,可以依循底下方式進行處理 
 
1.查詢log編號   使用 git reflog 查詢想要還原的commit編號 
  如果還原至稍早的版本,似乎是沒辦法看到該版本以後的log 
  可以使用 git reflog 查詢即可 
  這顯示每次操作強制留下紀錄有多麼重要......

 2.輸入 git reset --hard <欲還原的commit編號>
  此時就可以看到各個失散的檔案歸位了  
 
 
 
 
 
 
 >>> 處理錯誤訊息 <<<
 
##########################################################################   
 
##### 警告!!下列步驟是處理過程所經歷的"一些"步驟,並不代表絕對的處理方式

##### 處理類似的問題時需要詳細思考與理解 Terminal 上跳出的警告或錯誤訊息
 
##########################################################################  

問題A:

Terminal 出現 fatal: remote origin already exists. 訊息

可以使用 git remote rm origin 清除設定的 remote 位置

再重新設定即可

-----------------------------------------------------------------

問題B:
 
有時候本地端與遠端的檔案有異,無法順利pull,根據我在網路上看到的說法

是因為 < 從 git 2.9.0 開始預設行為不允許合併沒有共同祖先的分支。>

因此在指令上要有點變化

指令:
git pull git@github.com:KenGuerrilla/xxx.git <branch> --allow-unrelated-histories
 
執行完成後應該就可以看到雲端上pull回來的檔案了。
 
這時再輸入指令上傳
 
指令: git push origin master

完成後應該就可以在GitHub網頁上看到上傳的檔案了。



 
 
 
-- 首推先看 -- 
 
https://ihower.tw/git/
 
 
--- 參考資料 ---

 
https://blog.gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/ 
 
http://sdlong.logdown.com/posts/171365 
 
https://noootown.wordpress.com/2015/06/19/git-first-use/
 
https://github.com/doggy8088/Learn-Git-in-30-days/issues/31
 
  
------指令表------
http://blog.jex.tw/blog/2013/07/21/git/

http://wiki.csie.ncku.edu.tw/git
 

------救援滅火方式------

https://dotblogs.com.tw/michaelfang/2017/01/30/git-checkout
 
https://zlargon.gitbooks.io/git-tutorial/content/file/recover.html 

 
 
 
 


沒有留言:

張貼留言

Layout疑難雜症筆記

 這裡記錄一些Layout時View元件比較特殊的狀況與處理方式,內容會陸續增加。