小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

git筆記

 無(wú)為徐生 2021-09-08

1、基礎(chǔ)操作

1.1、常用命令

提交代碼
 git status -sb
 git add .
 git commit -m "fix"
 git push origin dev_20190510001

查詢狀態(tài)
git status

查看日志
 git log --stat
 git reflog --date=iso

建立分支
 git status -sb
 git checkout -B dev_20190510001
 git push
 git push --set-upstream origin dev_20190510001

展示文件  ls
刪除文件  git rm test2.txt 
撤銷操作  git checkout -- test.txt

添加文件到緩存:
 git add test.txt    單個(gè)文件
 git add .           當(dāng)前目錄全部文件

提交(包含注釋)到本地倉(cāng)庫(kù): 
 git commit -m '第一次版本提交' 


上傳文件到遠(yuǎn)程倉(cāng)庫(kù):
 git push origin [本地分支名]:[遠(yuǎn)端分支名]  
 當(dāng)然如果你的本地分支名和遠(yuǎn)端分支名是一樣的,那么就只需要git push origin [分支名稱]就可以了。 
    git push 

恢復(fù)最近版本文件
 git fetch
 git reset --hard origin/master   //恢復(fù)到遠(yuǎn)程倉(cāng)庫(kù),刪除git add和commit的文件


git pull   拉取 從遠(yuǎn)程拉取最新版本到本地,并自動(dòng)合并 merge
git fetch  獲取 從遠(yuǎn)程獲取最新版本到本地,不會(huì)自動(dòng)合并 merge,需要手動(dòng)合并
git merge  合并 使用fetch 可以在merge之前可以看清楚更新情況,再?zèng)Q定是否合并。
git merge --abort  中止合并



git 一個(gè)分支完全覆蓋另一個(gè)分支 ,如下:dev_20210729覆蓋develop
$ git checkout develop
$ git reset --hard dev_20210729
$ git push origin develop --force


不允許推送  You are not allowed to force push code to a protected branch on this project
"Settings" -> "Repository" -> scroll down to "Protected branches".

git回滾之前的版本  http://www.cnblogs.com/yu-hailong/p/10681905.html
git log   查詢?nèi)諝v記錄
git reset --hard 5fa86ae3758e7e2a86825452977da40f34b6dd58   回滾到之前的版本
git push origin HEAD --force   強(qiáng)制提交

還原本地文件 git reset -hard 

 git reset —soft + 版本號(hào)
  回退到某個(gè)版本,只回退了commit的信息,不會(huì)改變已經(jīng)修改過(guò)的代碼。
  git reset --soft HEAD^

 git reset —hard + 版本號(hào)
     git reset --hard orgin
  徹底回退到某個(gè)版本,本地的代碼也會(huì)改變上一個(gè)版本內(nèi)容。

 #本地倉(cāng)庫(kù)回退到某個(gè)版本    git reflog --date=iso
 git reset -–hard bae168  

 #本地倉(cāng)庫(kù)回退到上一次提交  
 git reset –-hard 

 git reset --hard HEAD

 回退到當(dāng)前版本的前一個(gè)版本
 git reset --hard HEAD^

 回退到當(dāng)前版本的上上個(gè)版本
 git reset --hard HEAD^^

 回退到當(dāng)前版本之前的100個(gè)版本
 git reset --hard HEAD~100


 丟棄本地提交,強(qiáng)制回到線上最新版本
 git fetch --all
 git reset --hard origin/你需要下拉的分支(默認(rèn)master) 
 git fetch

1.2、配置

vi /etc/ssh/sshd_config

查看版本:
 git --version

查看配置:
 git config --list

設(shè)置配置:
 git config --global pack.windowMemory 1024m

 git config --global pack.packsizelimit 1g

 git config --global http.postBuffer 1g

刪除配置:
 git config --global --unset pack.deltacachesize

1.3、分支

https://edu.aliyun.com/jiaocheng/1834?spm=5176.11182473.menu.7.k6ksTN

創(chuàng)建分支命令(復(fù)制當(dāng)前分支下文件):
 git branch (branchname)

提交分支到倉(cāng)庫(kù)命令:
 git push origin (branchname)

切換分支命令:
 git checkout (branchname)

列出分支基本命令:
 git branch -a

刪除分支命令:
 git branch -d (branchname)

創(chuàng)建新分支并立即切換到該分支下
 git checkout -b newtest
  有同名分支會(huì)提示錯(cuò)誤

強(qiáng)制創(chuàng)建新分支,并且會(huì)覆蓋原來(lái)存在的同名分支
 git checkout -B new_branch


設(shè)置本地分支關(guān)聯(lián)遠(yuǎn)程分支
 git push --set-upstream origin 


合并分支:
 git checkout master
 git merge test   // test分支合并到master分支
 git push origin master


查看分支      git branch -a
刪除本地分支  git branch -D branch-name
刪除遠(yuǎn)程分支  git push origin --delete branch-name


查看當(dāng)前配置有哪些遠(yuǎn)程倉(cāng)庫(kù)
 git remote -v


徹底刪除文件--會(huì)刪除對(duì)應(yīng)提交記錄(包含正常文件的提交歷史)
git filter-branch --force --index-filter 'git \
rm --cached --ignore-unmatch test徹底刪除.txt' \
--prune-empty --tag-name-filter cat -- --all
git push --all --force
修改分支名稱 https://www.jianshu.com/p/cc740394faf5

a. 重命名遠(yuǎn)程分支對(duì)應(yīng)的本地分支
git branch -m oldName newName

b. 刪除遠(yuǎn)程分支
git push --delete origin oldName

c. 上傳新命名的本地分支
git push origin newName

d.把修改后的本地分支與遠(yuǎn)程分支關(guān)聯(lián)
git branch --set-upstream-to origin/newName

2、高級(jí)操作

2.1、查看文件狀態(tài)及日志

git status 命令用于查看項(xiàng)目的當(dāng)前狀態(tài)。
git status -s  查看詳情


git diff   
git diff --stat

執(zhí)行 git diff 來(lái)查看執(zhí)行 git status 的結(jié)果的詳細(xì)信息。

git diff 命令顯示已寫入緩存與已修改但尚未寫入緩存的改動(dòng)的區(qū)別。
git diff 有兩個(gè)主要的應(yīng)用場(chǎng)景。
 尚未緩存的改動(dòng):git diff
 查看已緩存的改動(dòng):git diff --cached
 查看已緩存的與未緩存的所有改動(dòng):git diff HEAD
 顯示摘要而非整個(gè) diff:git diff --stat

退出git diff  : q


查看全部分支的已經(jīng)commit但是沒(méi)有push的:
 git log --branches --not --remotes

 git cherry -v   只能查看未傳送提交的描述/說(shuō)明
 git log master ^origin/master  則可以查看未傳送提交的詳細(xì)信息


查看全部分支的全部的最近的commit:
 git log --branches --not --remotes --simplify-by-decoration --decorate --online

查看日志
 git log
 git log --oneline -3    當(dāng)前分支的最近三次提交記錄

 git log --stat     https://www.cnblogs.com/fancyop/p/Git_Log.html
 用來(lái)顯示每次提交的下面列出所有被修改過(guò)的文件、有多少文件被修改了以及被修改過(guò)的文件的哪些行被移除或是添加了。 在每次提交的最后還有一個(gè)總結(jié)。

 git reflog              所有分支的記錄
 git reflog --date=iso 

2.2、stash暫存

git stash:       備份當(dāng)前的工作區(qū)的內(nèi)容,從最近的一次提交中讀取相關(guān)內(nèi)容,讓工作區(qū)保證和上次提交的內(nèi)容一致。同時(shí),將當(dāng)前的工作區(qū)內(nèi)容保存到Git棧中。

git stash pop:   從Git棧中讀取最近一次保存的內(nèi)容,恢復(fù)工作區(qū)的相關(guān)內(nèi)容。由于可能存在多個(gè)Stash的內(nèi)容,所以用棧來(lái)管理,pop會(huì)從最近的一個(gè)stash中讀取內(nèi)容并恢復(fù)。

git stash list:  顯示Git棧內(nèi)的所有備份,可以利用這個(gè)列表來(lái)決定從那個(gè)地方恢復(fù)。

git stash clear: 清空Git棧。此時(shí)使用gitg等圖形化工具會(huì)發(fā)現(xiàn),原來(lái)stash的哪些節(jié)點(diǎn)都消失了。


git stash apply  恢復(fù)暫存之后不刪除暫存
git stash pop   恢復(fù)暫存之后刪除暫存
git stash drop   從Git棧刪除最舊的一個(gè)暫存

2.3、修改注釋信息

git使用amend選項(xiàng)提供了最后一次commit的反悔。但是對(duì)于歷史提交呢,就必須使用rebase了。 

git rebase -i HEAD~3 
表示要修改當(dāng)前版本的倒數(shù)第三次狀態(tài)。 
這個(gè)命令出來(lái)之后,會(huì)出來(lái)三行東東: 

pick:******* 

pick:******* 

pick:******* 

如果你要修改哪個(gè),就把那行的pick改成edit,然后退出。 


這時(shí)通過(guò)git log你可以發(fā)現(xiàn),git的最后一次提交已經(jīng)變成你選的那個(gè)了,這時(shí)再使用: 

git commit --amend 

來(lái)對(duì)commit進(jìn)行修改。     :wq

修改完了之后,要回來(lái)對(duì)不對(duì)? 

使用git rebase --continue 
git rebase --abort

OK,一切都搞定了。 

https://xiewenbo./blog/1285693
恢復(fù)已刪除分支
https://blog.csdn.net/changerzhuo_319/article/details/81133533    
git reflog --date=iso
git checkout -b reback_remove_branch ddd94a4

3、問(wèn)題

3.1、github添加ssh公鑰

## github添加ssh公鑰  git clone

打開(kāi) git bash

ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub

添加到 https://github.com/settings/keys   依次點(diǎn)擊"Setting -> SSH Keys"->"New SSH key"

ssh -T git@github.com

git clone git@github.com:scott180/MyNotes.git

3.2、提交及更新失敗

用git pull來(lái)更新代碼的時(shí)候,遇到了下面的問(wèn)題:

error: Your local changes to the following files would be overwritten by merge:  
    xxx/xxx/xxx.php  
Please, commit your changes or stash them before you can merge.  
Aborting


https://www.cnblogs.com/xd502djj/p/6973477.html

解決方法:

方法1、暫存本地文件,下載最新代碼?;謴?fù)本地修改的代碼,修改沖突的文件,提交代碼。      
git stash           //暫存
git pull            //下載最新代碼
git stash pop        //恢復(fù)暫存文件

git status                      //查詢狀態(tài)
git add xxx/xxx/Test.java       //提交文件   不能使用全部提交:(git add .)
git commit -m "fix"             //注釋
git push                        //提交文件


方法2、 放棄本地修改文件,下載最新代碼
git reset --hard
git pull
GIT拉取代碼的時(shí)候提示AUTHENTICATION FAILED FOR []

解決方法:
輸入 git config --global credential.helper store  
然后 git pull  輸入賬號(hào)密碼

或者清除密碼
git config --system --unset credential.helper
在git(小烏龜)向github遠(yuǎn)程推送(push)文件是會(huì)報(bào)一個(gè)異常 no supported authentication methods avaiable         
https://blog.csdn.net/Maxiao1204/article/details/81476618

解決方法:
因?yàn)間it(小烏龜)和Git的沖突我們需要把烏龜git設(shè)置改正如下。

找到TortoiseGit--》Settings--》Network

將SSH client指向 D:\git\usr\bin\ssh.exe (我的Git工具安裝在d盤)

這里更改ssh 路徑的時(shí)候,要把上面的“使用代理服務(wù)器” 勾打上,點(diǎn)擊應(yīng)用,再確定

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多