作業環境為 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
沒有留言:
張貼留言