git命令

问题背景:

  新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上

  通过git拉取代码的时候,默认拉取的是master分支,如下图:

拉取指定分支代码解决方案:

以拉取develop分支的代码为例, 要拉取其余分支代码类似操作

1.使用git命令拉取

命令:git clone -b develop XXX 

其中develop就是分支的名称

2.git在当前分支新建新的分支

1.git checkout current_branch      切换到当前分支current_branch

2.git pull     拉取最新的

3.git checkout -b new_branch    基于当前的分支,创建new_branch分支

4.git push origin new_branch      推送到线上

于是乎,就基于当前的分支创建了新的分支

3.Git冲突:commit your changes or stash them before you can merge.

今天用git pull来更新代码,遇到了下面的问题:

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

提示已经很友好了,从网友处得到的答案直接帮我解决问题。
1.stash

通常遇到这个问题,你可以直接commit你的修改;但我这次不想这样。

看看git stash是如何做的。

git stash
git pull
git stash pop
接下来diff一下此文件看看自动合并的情况,并作出相应修改。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。


2.放弃本地修改,直接覆盖之

git reset --hard
git pull

4.在当前分支切换至新分支

git checkout branch

5.git 如何把master分支代码合并到自己的分支
master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支

1.首先切换到主分支

git checkout master

2.使用git pull 把领先的主分支代码pull下来

git pull

3.切换到自己的分支

git checkout xxx(自己的分支)

4.把主分支的代码merge到自己的分支

git merge master

5.git push推上去ok完成,现在 你自己分支的代码就和主分支的代码一样了

git push origin 自己分支名
 

6. git push 报错:changes not staged for commit

2. 提交时加上参数:-a ,表示新增。

git commit -am "提交说明"

提交成功。 

7.修改git分支名字修改git分支名称

场景:将分支名称为 oldbranch 改为 newbranch 

步骤:

1、将本地分支oldbranch切一个分支到本地

     git branch -m oldbranch newbranch

     

 2、删除远程分支

    git push --delete origin oldbranch

    

3、将本地新分支推送到远程

   git push origin newbranch

  

8、git 命令行回退到某个指定的版本

1、在开发过程中遇到合并别人的代码或者合并主分支的代码导致自己的分支代码冲突或有别的问题,这时我们需要回退某个git提交历史的代码 用一下命令

git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 

后面的是git提交的历史版本号,上git上面找到复制下来就行

2、执行上面操作之后我们本地的代码就会回到你需要回到的某个版本的代码

但是只是我们本地的代码回退了 如果需要push到远端需要执行以下操作

git push -f -u origin master(需要push到远端的分支)
强制提交到master分支,远端的分支将会被替换,

注意:这里我们要注意,当我们执行了第二步操作之后,远端的代码就已经被强制替换掉 在 “ 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96  “之后提交的分支git提交历史上就找不到了 所以我们强制推到远端一定要记得备份代码

9、git 比较两个分支的区别

git diff  分支1 分支2 --stat (加上 --stat 是显示文件列表, 默认是文件内容diff)

git diff branch1 branch2 --stat                   //显示出所有有差异的文件列表


git diff branch1 branch2   具体文件路径   //显示指定文件的详细差异


git diff branch1 branch2                            //显示出所有有差异的文件的详细差异

10、git merge时报错

error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

先解决冲突文件

再git add 该冲突文件

再git commit

再git merge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值