Git
建立一個.gitignore檔案,裡面的路徑檔就不會被追蹤
dist //整個目錄
dist/*.js //目錄下的所有.js檔案
dist/aaa.html //特定檔案
***如果.gitignore檔案是之後才加上,原本已經有的還是在git上面,必須先取消git上的追蹤,並刪除
$ git rm -r --cached dist //資料夾
$ git rm --cached dist/aaa.html //單一檔案
$ git stash
$ git stash list
$ git stash apply stash@{0}
$ git stash drop stash@{0}
$ git branch //查看有哪些分支
$ git branch <branch> //建立
$ git checkout <branch> //切換
$ git branch -d <branch> //刪除
$ git push --set-upstream origin develop
追蹤用
$ git branch --set-upstream-to=origin/<branch> taog
git branch -v -a //查看遠端的branch
git checkout --track origin/develop //切換過去後之後就會出現在本地端
$ git commit --amend -m "[文字]"
$ git reset HEAD^
$ git add .
$ git reset --hard commitID
參考:https://www.jianshu.com/p/420d38913578
git在windows與MacOS會把檔案名稱一樣(不分大小寫)識別為同一個檔案,所以git 會無法追蹤到,linux上才會區分大小寫
解決方式:可以透過設定config來修改
$ git config -l | grep ignorecase
$ git config --global core.ignorecase false
$ git config core.ignorecase false
$ git checkout -- [路徑]/[檔案]
$ git remote -v //查看遠端資訊
$ git remote remove origin //取消遠端追蹤
$ git remote add [shortname] [url]
$ git remote set-url origin [url]
直接取代方式
$ git checkout master //切換到要merger的brach
$ git checkout [branch] [檔案路徑/test.java] //將branch的test.java檔案取代master的test.java檔案
分之 merge 會判斷衝突的地方
$ git checkout -b master_temp //新建一個分支
$ git merge [branch] //用來解決衝突
$ git checkout master //切換到master
$ git checkout [branch] [檔案路徑/test.java] //在取代需要的檔案
只要是commit都會有紀錄,所以不管是reset或是你git做了什麼動作,只要有commit過都會記錄在 git reflog 裡面
$ git reflog // 找出要還原的那個commit SHA-1 值,或是使用 git log -g 同reflog
$ git reset d2dd5f6 --hard //就是那麼簡單