又是萬惡的git啊
參考: 很多 多到記不下來 反正網上一搜全都有
說在前面
千萬不要刪掉.git
文件!!!!!!!!!!!
只要.git
在 一切問題都不是問題 大不了就回退嘛
如果刪了的話 呵呵 一夜回到解放前 o(╥﹏╥)o
進到一個項目裏面先初始化git 系統會創建.git文件夾
git init
然後添加遠程倉庫
git remote add origin <address>
本地修改完一個代碼要保存到磁盤上
git add .
git commit -m "xxxxxxxx"
在push之前先把遠程分支上的更新拉下來 這個git pull
相當於執行了git fetch
和git merge
git pull origin/<branch>
如果想撤銷這個pull
操作的話 先查看歷史版本 也就是你要回退到的那個版本
git reflog
然後找到那個版本的版本號 也就是HEAD@{x}
git reset --hard HEAD@{x}
或者你也可以敲HEAD@{x}
前面的那一串十六進制數
例如有一條記錄
06c5153fc (HEAD -> tempDev, dev) HEAD@{0}: checkout: moving from dev to tempDev
如果我要回退到HEAD@{0}
那麼可以敲
git reset --hard 06c5153fc
pull
下來的時候可能會出現衝突
這時命令行會出現<branch>|MERGING
這時打開代碼 把衝突的地方一個個改掉
就是手動改 一個一個改就得了
其實也還好 就是一片飄紅看起來有點恐怖
>>>>>>> HEAD
// 本地改動的
Toast.makeText(MainActivity.this, "hello world", Toast.LENGTH_SHORT).show();
=======
// 遠程改動的
Toast.makeText(MainActivity.this, "HELLO WORLD", Toast.LENGTH_SHORT).show();
<<<<<<< BRANCH
改完之後要merge
不過在merge
之前要查看改動了哪些地方
git status
因爲是改動過的嘛 所以要重新添加並提交
git add .
如果想查看有沒有全部add
進去的話 可以再敲一次
git status
因爲add
完了 那肯定要提交 所以
git commit -m "xxxxxxxx"
這時可以查看狀態 看看有沒有沒加進去的 或者沒commit
的
git status
在push
之前務必把遠程最新的代碼拉下來 防止出問題
git pull
但是如果當前本地分支沒有跟遠程分支關聯的話 git pull
並不知道要拉哪個分支的更新下來 會報錯
按照系統的提示 可以將當前本地分支關聯遠程分支
git branch --set-upstream-to=origin/<branch> dev
然後重新pull
git pull
當然 如果不想更新的話 也可以寫清楚是拉哪個分支
git pull origin <branch>
這個時候就可以push
了
如果前面關聯了遠程分支的話可以直接
git push
如果沒有關聯遠程分支的話 要寫清楚是哪個分支 當前的分支名要跟遠程的分支名相同 否則會出問題
git push origin <branch>
如果這時候要新開一個分支做別的功能 那麼創建並切換到該分支
git checkout -b <branch>(本地)
如果要創建本地分支並且關聯到遠程分支的話
git checkout -b <branch> <remoteBranch>
如果要查看本地有什麼分支的話可以
git branch
如果要查看全部分支的話可以加上-a
其中遠程分支會標紅
git branch -a
如果要保存修改完的代碼的話 就是前面的add
和commit
但是如果這個時候想把這個新分支(本地分支)合併到現在已有的分支(本地分支)上的話可以用merge
但是merge
之前要先把分支切換到已有分支(本地分支) 而不是留在新分支(本地分支)那裏
切換完之後照例查看狀態git status
以及拉最新代碼git pull
將創建的新分支合併到已有分支(本地分支)上
命令行上當前所處的分支是已有分支<branch>
(本地分支)
執行命令
git checkout <branch>
git merge <newBranch>
合併完之後 如果想把那個沒有用的新分支(本地分支)刪去
那麼先確保當前處在已有分支(本地分支)上
不然會報錯 因爲你現在處在一個已刪除的新分支上是有問題的
git checkout <branch>
git branch -d <newBranch>
這時再查看分支git branch
一下就好了
查看日誌可以用
git log