GIT重新學習

名詞解釋

HEAD 表示當前版本
HEAD^ 表示上一個版本
HEAD^^ 上上一個版本
HEAD~100 上100個版本
git reset --hard HEAD^ 丟棄當前版本返回上一個版本 --soft 是將修改放回本地退回到commit之前的狀態
git reset --hard 1800eea57cf37 恢復到 後面版本號指定的版本
git reflog 查看使用過的所有的指令
git diff HEAD -- readme.md 命令可以查看工作區和版本庫裏面最新版本的區別:

git checkout -- readme.md 沒有add的時候丟棄工作區中的改動
git reset HEAD readme.txt add,但是沒有commit的時候丟棄改動
git rm test.txt 確實要將 文件從git管理中刪除
git checkout -- test.txt 刪錯文件 恢復

git remote add origin [email protected]:michaelliao/learngit.git 關聯遠程倉庫
git push -u origin master 推送遠程倉庫 且進行本地mater關聯遠程master
git push origin master 推送遠程

git checkout -b dev 切換到新分支 -b 表示創建並切換
git branch dev 創建分支
git checkout dev 切換分支
git branch 查看當前分支
git merge dev 將dev分支合併到當前分支
git branch -d dev 刪除分支

git switch -c dev 切換分支 和 checkout相同
git log --graph --pretty=oneline --abbrev-commit 查看分支的合併情況:
git merge --no-ff -m "merge with no-ff" dev merge的時候禁用FF合併,因爲FF合併可能會丟失分支指針
git stash 暫時貯藏
git stash list 查看之前貯藏的東西在哪裏
git stash apply 恢復但是不會刪除 stash中的東西
git stash pop 恢復同時刪除
git stash drop 刪除stash
git cherry-pick 4c805e2 將其他分支提交的4c805e2修改同步到當前分支
git branch -D feature-vulcan 強制刪除分支

git checkout -b dev origin/dev 創建和遠程對應的分支
git branch --set-upstream-to=origin/dev dev 制定本地分支和遠程分支相關聯?? git pull 失敗的使用使用

git rebase -i 將多個提交合併成一個提交

git pull --rebase 和pull 產生的merge 類似 只不過是移動了一下順序變成了一道直線
git tag v1.0 打標籤
git tag v0.9 f52c633 對應提交打標籤
git tag -a v0.1 -m "version 0.1 released" 1094adb 制定標籤說明
git push origin v1.0 將本地的標籤推送到遠程
git remote rm origin 刪除origin的關聯
git check-ignore -v App.class 檢查規則文件
git add -f App.class 強制添加文件
git config --global alias.st status 配置別名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset
-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 配置顯示

git commit --amend 實現本次提交和上次提交進行簡單合併的操作
git commit -a 加了-a,在 commit 的時候,能幫你省一步 git add ,但也只是對修改和刪除文件有效, 新文件還是要 git add,不然就是 UNtracked !

https://github.com/github/gitignore 所有的gitignore

TIPS

分支可以在自己本地藏着玩 不一定要進行推送
對於一個bug可以先git stash 保存手頭上的工作,切換分支到新的分支,然後git commit 所有的提交,最後切換回主分支,後和git merge 分支

核心概念

Git管理的是修改

合併多個分支

比較適合本地還未提交的 已經提交的未經過測試 效果類似與 git commit --amend
git rebase -i

將要變爲合併的分支 將pick 改爲 s 一般第一個還是pick 後面的改成 s 然後生成 一個類似commit的界面重新撰寫註釋

git 文件過大進行刪除

git clone [email protected]:jfinal/jfinal.git
git filter-branch --tree-filter 'rm -f WebRoot/WEB-INF/lib/*.jar' --tag-name-filter cat -- --all
git push origin --tags --force
git push origin --all --force

參考鏈接

https://www.liaoxuefeng.com/wiki/896043488029600/900062620154944 和平時一些收集網頁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章