1.主干合並分支
Git命令需要在主干下運行,命令執行后,分支的代碼同步到了主干。
(1)在主干master上合並分支branch
(master) git merge branch --squash
--squash 選項的含義是:不提交、不移動HEAD,因此需要一條額外的commit命令。效果相當於將分支上的多個commit合並成一個,放在當前分支上,原來的commit歷史則沒有拿過來(前提是分支的commit歷史不重要)。
(2)提交合並后的代碼
(master) git commit -m "合並分支代碼"
(3)將代碼推送到遠程倉庫
(master) git push
2.分支合並主干
Git命令需要在分支下運行,執行后主干的代碼同步到了分支。
(1)在分支branch上合並主干master
(branch) git merge master --squash
(2)提交合並后的代碼
(branch) git commit -m "合並主干代碼"
(3)將代碼推送到遠程倉庫
(branch) git push
Git master branch has no upstream branch的解決
設置gitthub倉庫地址:
git remote add origin https://github.com/...
解決辦法其實就是確定這兩個值,方法有兩種:
第一種:git push --set-upstream origin master。其中的origin是你在clone遠程代碼時,git為你創建的指向這個遠程代碼庫的標簽,它指向repository。為了能清楚了解你要指向的repository,可以用命令git remote -v進行查看。master是你遠程的branch,可以用git branch -a查看所有分支,遠程分支是紅色的部分。然后確定好這兩個值后,將值換掉即可。
另一種方法是:git push -u origin master。同樣根據自己的需要,替換origin和master。
兩個命令的區別是第一條命令是要保證你的遠程分支存在,如果不存在,也就無法進行關聯。而第二條指令即使遠程沒有你要關聯的分支,它也會自動創建一個出來,以實現關聯。
failed to push some refs to的問題
git pull --rebase origin master
Updating an unborn branch with changes added to the index
那么可能是你暫存區內還有未提交的代碼文件,可以用git status查看一下,
如果顯示nothing to commit暫存區才是干凈的。
不然的話,重新提交
git add xxx.xx(代碼文件)
git commit -m "xx"
git checkout master
git remote add upstream xxxx
git remote -v
git merge upstream/master
git push origin master
git branch查看分支
git add .
git commit -m "提交注釋"
git checkout master 切換到master分支
git pull 從遠程倉庫拉去最新代碼,更新代碼后,要看代碼是否有沖突,解決沖突后,git merge
git push把代碼提交到遠程倉庫,git merge
git config --global credential.helper store
git commit --amend用法
適用場景:
比方說,你的代碼已經提交到git庫,leader審核的時候發現有個Java文件代碼有點問題,於是讓你修改,通常有2種方法:
方法1:leader 將你提交的所有代碼 abandon掉,然后你回去 通過git reset …將代碼回退到你代碼提交之前的版本,然后你修改出問題的Java文件,然后 git add xx.java xxx.java -s -m “Porject : 1.修改bug…”
最后通過 git push origin HEAD:refs/for/branches
方法2:
leader不abandon代碼,你回去之后,修改出問題的Java文件,修改好之后,git add 該出問題.java
然后 git commit –amend –no-edit,
最后 git push origin HEAD:refs/for/branches。
當我們想要對上一次的提交進行修改時,我們可以使用git commit –amend命令。git commit –amend既可以對上次提交的內容進行修改,也可以修改提交說明。
舉個例子:
Step1:我們先在工作區中創建兩個文件a.txt和b.txt。並且add到暫存區,然后執行提交操作:
Step2:此時我們查看一下我們的提交日志:
可以看到我們的提交日志中顯示最新提交有兩個文件被改變。
Step3:此時我們發覺我們忘了創建文件c.txt,而我們認為c.txt應該和a.txt,b.txt一同提交,而且a.txt文件中應該有內容‘a’。於是我們在工作區中創建c.txt,並add到暫存區。並且修改a.txt(故意寫錯語法且沒有將a.txt的修改add到暫存區):
Step4:我們查看一下此時的提交日志,可以看到上次的提交0c35a不見了,並且新的提交11225好就是上次提交的修補提交,它就像是在上次提交被無視了,修改后重新進行提交了一樣:
Step5:此時我們發現a.txt文件修改沒有成功,於是我們還得進行一次對a.txt的修改,將a.txt add到stage,然后再執行一次與上一次類似的提交修補:
OK了,git commit –amend的用法大致就是這樣。
總結:git commit --amend 相當於上次提交錯誤的信息被覆蓋了,gitk圖形化界面上看不到上次提交的信息,git log上也看不到之前的信息,而add 后再commit 相當於重新加了一個信息。相當於打了個補丁?
vscode 使用git
3. git 全局設置 git config --global user.name "xxxx" git config --global user.email "xxxx@xx.com" 打開 目錄下面.git\config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://gitee.com/wangwei5200/daima.git #git項目地址 fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master 4.vs code 打開daima目錄 拉取代碼