Git相关

1. 使用 git checkout 撤销本地修改

放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态。
注意: 已 add/ commit 的文件不适用个方法,应该用本文提到的第二种方法。

命令如下:

git checkout . # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件
git checkout [filename] # 撤销对指定文件的修改,[filename]为文件名

2. 使用 git reset 回退项目版本

可以回退到任意已经提交过的版本。已 add / commit 但未 push 的文件也适用。

命令如下:

git reset --hard [commit-hashcode]
[commit-hashcode]是某个 commit 的哈希值,可以用 git log 查看

因此一般用法是先用 git log 查看具体commit的哈希值,然后 reset 到那个版本。

3. git多个账号 动态添加当前密钥

eval $(ssh-agent -s) :密钥管理器
ssh-add ~/.ssh/other_id_rsa:添加自定义密钥

4. git 从已有分支 建立新分支

从master分支中复制一个新分支dev

  1. 切换到被copy的分支(master),并且从远端拉取最新版本
    $git checkout master
    $git pull
    或者直接 git clone (-b branch) 远程路径

  2. 建立新分支,并切换到新分支
    $git checkout -b dev
    Switched to a new branch ‘dev’
    等同于:git branch dev
    git checkout dev

  3. 把本地(与master一样的代码)push到远程dev分支
    $git push origin dev

  4. 拉取远端分支
    $git pull

此处会失败,根据提示进行关联:
Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。
因此,远程追踪的依旧是master,应该修改为dev

  1. 关联
    $git branch --set-upstream-to=origin/dev
    注意:这里branch之后都是没有空格的,如果有空格则是错误命令

  2. 再次拉取 验证
    $git pull

4. 强行一个分支覆盖另个分支

如:当前分支是update分支,我想讲dev分支上的代码完全覆盖update分支,首先切换到update分支。(或者直接git clone -b update)

 git reset --hard origin/dev

执行上面的命令后update分支上的代码就完全被dev分支上的代码覆盖了(只是针对本地分支)也就是本地代码变成了dev的代码,但是本地origin依旧跟踪update分支。然后将本地分支强行推到远程分支。

git push origin update -f

代码回滚https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting

5.Git 合并远程分支

前言

有的时候我们需要跟别人合作进行开发,然后分别使用不同的Git分支,等项目完成时,需要进行代码合并,就需要知道Git如何合并远程分支。

步骤

假设你本地在使用的分支为a(master也是一样的),需要合并的远程分支为b

第一步:在本地新建一个与远程的分支b相同(被合并的版本)的分支b

git checkout -b b origin/b

该指令的意思:创建一个本地分支,并将远程分支放到该分支里面去。

第二步:将远程代码pull到本地

git pull origin b

第三步:返回到你的分支a

git checkout a

第四步:合并分支a与分支b

git merge b

该指令的意思:当前所在分支与b进行合并。

到此为止,可能会出现有些文件合并失败:

冲突(内容):合并冲突于 order-preference/pom.xml
自动合并 common/pom.xml
冲突(内容):合并冲突于 common/pom.xml
自动合并失败,修正冲突然后提交修正的结果

其中common下的pom自动合并失败,此时需要手动合并修改,之后git add, git commit

第五步:把本地的分支a同步到远程

git push origin a

下面步骤可用可不用
第五步:如果你不需要本地或者远程的分支,你可以查询并删除多余分支。

本地:查询本地分支:

git branch

删除本地分支:

git branch -D br

远程:查询远程分支:

git branch

删除远程分支:

git push origin :br  (origin 后面有空格)

5.Git push之前 先同步远程代码

以master为例:

git fetch origin master 
git merge origin/master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值