同步遠(yuǎn)程master盗冷,清除本地代碼
git fetch // 是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉到本地,用戶在檢查了以后決定是否合并到工作本機(jī)分支中
git reset --hard origin/master // 從遠(yuǎn)程倉(cāng)庫(kù)把代碼取回來(lái)卵凑,然后覆蓋本地倉(cāng)庫(kù)萌庆、本地暫存區(qū)和工作區(qū)
git pull // 是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉下來(lái)后直接合并
首次提交
git init
git remote add origin [遠(yuǎn)程倉(cāng)庫(kù)地址]
git add .
git push --set-upstream origin master // master可以根據(jù)子的需要自定義纺蛆,就是當(dāng)前分支在遠(yuǎn)程分支對(duì)應(yīng)的名稱
git push
git 命令
-
基本命令
git clone [遠(yuǎn)程庫(kù)地址] // 克隆遠(yuǎn)程庫(kù)
git init // 初始化本地庫(kù)
git pull origin [遠(yuǎn)程分支] // 拉取遠(yuǎn)程分支代碼并合并本地
git status // 查看工作區(qū)瓢剿、暫存區(qū)的狀態(tài)
git add <file name> // 將工作區(qū)的 “單文件” 添加到暫存區(qū)
git add <file name> <file name> // 將工作區(qū)的 “多文件” 添加到暫存區(qū)
git add . // 將工作區(qū)的 “所有文件” 添加到暫存區(qū)
git rm --cached <file name> // 移除暫存區(qū)的修改
git commit -m "提交日志" // 文件從暫存區(qū)到本地庫(kù)
git push origin [本地分支]:[遠(yuǎn)程分支] // 更新遠(yuǎn)程分支代碼额划,如果遠(yuǎn)程分支不存在渴逻,創(chuàng)建分支并推送
git push origin --delete [遠(yuǎn)程分支] // 刪除遠(yuǎn)程分支
-
日志命令
git log // 查看歷史提交 (空格向下翻頁(yè)疾党,b向上翻頁(yè),q退出)
git log --pretty=oneline // 以漂亮的一行顯示惨奕,包含全部哈希索引值
git log --oneline // 以簡(jiǎn)潔的一行顯示雪位,包含簡(jiǎn)潔哈希索引值
git reflog // 以簡(jiǎn)潔的一行顯示,包含簡(jiǎn)潔哈希索引值梨撞,同時(shí)顯示移動(dòng)到某個(gè)歷史版本所需的步數(shù)
-
分支操作
git branch // 查看本地分支
git branch -a // 查看所有分支
git branch -D [分支名] // 刪除本地分支
git push origin --delete [遠(yuǎn)程分支名] // 刪除遠(yuǎn)程分支
git branch [分支名] // 新建分支
git checkout [分支名] // 切換分支
git checkout -b [分支名] // 新建并切換分支
git merge [被合并分支名] // 合并分支
代碼回滾
參考:https://hacpai.com/article/1516671091985
-
在工作區(qū)的代碼
git checkout -- a.txt // 丟棄某個(gè)文件
git checkout -- . // 丟棄全部
注意:git checkout – . 丟棄全部雹洗,也包括:新增的文件會(huì)被刪除香罐、刪除的文件會(huì)恢復(fù)回來(lái)、修改的文件會(huì)回去时肿。這幾個(gè)前提都說(shuō)的是庇茫,回到暫存區(qū)之前的樣子。對(duì)之前保存在暫存區(qū)里的代碼不會(huì)有任何影響螃成。對(duì)commit提交到本地分支的代碼就更沒(méi)影響了旦签。當(dāng)然,如果你之前壓根都沒(méi)有暫存或commit寸宏,那就是回到你上次pull下來(lái)的樣子了
-
代碼git add到緩存區(qū)宁炫,并未commit提交
git reset HEAD .
git reset HEAD a.txt
這個(gè)命令僅改變暫存區(qū),并不改變工作區(qū)氮凝,這意味著在無(wú)任何其他操作的情況下羔巢,工作區(qū)中的實(shí)際文件同該命令運(yùn)行之前無(wú)任何變化
-
git commit到本地分支、但沒(méi)有g(shù)it push到遠(yuǎn)程
git log // 得到你需要回退一次提交的commit id
git reset --hard <commit_id> // 回到其中你想要的某個(gè)版
git reset --hard HEAD^ // 回到最新的一次提交
git reset HEAD^ // 此時(shí)代碼保留罩阵,回到 git add 之前
-
git push把修改提交到遠(yuǎn)程倉(cāng)庫(kù)
1.通過(guò)git reset是直接刪除指定的commit
git log // 得到你需要回退一次提交的commit id
git reset --hard <commit_id>
git push origin HEAD --force // 強(qiáng)制提交一次竿秆,之前錯(cuò)誤的提交就從遠(yuǎn)程倉(cāng)庫(kù)刪除
2.通過(guò)git revert是用一次新的commit來(lái)回滾之前的commit
git log // 得到你需要回退一次提交的commit id
git revert <commit_id> // 撤銷指定的版本,撤銷也會(huì)作為一次提交進(jìn)行保存
3.git revert 和 git reset的區(qū)別
git revert // 是用一次新的commit來(lái)回滾之前的commit永脓,此次提交之前的commit都會(huì)被保留
git reset // 是回到某次提交袍辞,提交及之前的commit都會(huì)被保留鞋仍,但是此commit id之后的修改都會(huì)被刪除