git合并分支

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目录  拉取代码

 

posted @ 2020-04-14 20:01  洪豆豆的记录  阅读(2331)  评论(0编辑  收藏  举报