• 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"
    打开 目录下面.gitconfig 
    [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目录  拉取代码
  • 相关阅读:
    【OpenCV入门指南】第一篇 安装OpenCV
    java.lang.Math中的基本方法
    padding与margin的差别
    怎样做到从程序猿到管理者的跳跃
    秒杀多线程第四篇 一个经典的多线程同步问题
    NETSH WINSOCK RESET这条命令的含义和作用?
    如何在windows系统自带命令查看硬件信息?
    centos6.5 无线网卡配置
    ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc
    lsof 拥有更多的功能
  • 原文地址:https://www.cnblogs.com/hongdoudou/p/12700767.html
Copyright © 2020-2023  润新知