Git常用方法汇总

在这里插入图片描述

案例:远程分支合并

git reset HEAD
合并分支案例代码
git clone ssh://gucaohan@icode.baidu.com:8235/baidu/mapclient/engine-dev
scp -p -P 8235 gucaohan@icode.baidu.com:hooks/commit-msg engine-dev/.git/hooks/
cd engine-dev
git checkout feature-v15.15.0-mapauto
git merge --no-ff origin/feature-v15.7.5-mapauto
git add .
git commit -m "
git commit -m “自己建icafe卡片”
git push origin HEAD:refs/for/feature-v15.15.0-mapauto

配置SSH公钥

首次使用icode
使用iCode克隆代码库时可以选择使用SSH访问代码库,但需要配置SSH公钥。
1、 生成ssh-rsa公钥
ssh-keygen -t rsa -f ~/.ssh/id_rsa.wangpenghao
ssh-keygen用来生成ssh公钥认证所需的公钥和私钥文件,其中无后缀名文件为私钥文件,.pub后缀文件为公钥文件。
-t 指定生成key的类型。
-f 指定目标路径,包含文件名。
2、iCode中配置SSH公钥
将公钥文件的内容完整复制到iCode个人中心的SSH公钥输入框中,点击添加SSH公钥。
3、创建配置文件
在~/.ssh路径下创建配置文件,修改文件权限。
touch config
chmod 644 config
4、在config中添加以下内容

问题一:
在这里插入图片描述
Mac 环境下 git clone下载代码的偶然性失败问题Permission denied (publickey,keyboard-interactive).

解决办法:
重新配置config中的username和email
注意:.git/config以及~/.gitconfig 都要查看一遍 没有就直接添加

在这里插入图片描述

问题二:
git merge后检查检查具体冲突 git diff --check
git merge后检查冲突文件 git diff --name-only --diff-filter=U

git commit --amend命令用来修复最近一次commit. 可以让你合并你缓存区的修改和上一次commit, 而不是提交一个新的快照. 还可以用来编辑上一次的commit描述. 记住amend不是修改最近一次commit, 而是整个替换掉他.

问题三:git add 错误

  1. 误add所有文件
    git reset HEAD
    将所有此次修改的 file 退回到工作区
  2. 误add单个文件,只撤销部分文件
    git reset HEAD file
    将此次修改的这个 file 退回到工作区

问题四:评审不通过 回退改动
将改动后的文件重新git add
执行 git commit --amend

这些步骤过于繁琐 以后不再执行
git reset --soft HEAD~1 回退到前一个版本 git reflog 查看当前游标指向 应该是指向上一个commit git status 查看当前代码状态
git reset HEAD 撤回add git checkout – 撤回文件到和HEAD相同
修改文件重新执行git add
git commit --amend 使用该命令重新commit 注:不要使用git commit -m 提交,避免一次提交出现两个commit的情况。
git push origin master:refs/for/master
3、如果该评审是基于废弃评审的,如何解决
(step1)将某个远程主机的更新,全部取回本地。
git fetch origin master
git reset --soft origin/master
(step2)重新提交
git add -u
git commit
git push origin HEAD:refs/for/master

更新远程分支
git branch -a 无法看见某远程分支
解决办法:
git remote set-branches --add origin [分支名称]
git fetch origin [分支名称]
git checkout [分支名称]

撤销git add
撤销所有文件
git reset HEAD .

撤销部分文件
git reset HEAD 文件路径

git commit
撤销上一次commit
git reset --soft HEAD^
git reset --hard HEAD^ //连同修改文件一同撤销,使用前想想有没有stash
查看commit历史
git log

git commit --amend撤销方法
git reflog 查看所有操作
git reset+想恢复到的地方的id,就可以恢复到任一个被覆盖的commit id
使用 git reset --hard 不保留本地修改,将修改丢弃

拉取该分支某次commit的内容
git fetch ……

拉取该分支某次commit的内容
git commitID

Git cherry-pick方法

将在1分支的commit 复制(合并)到2分支
Git checkout 2分支
Git pull
git cherry-pick 1分支commit id:756eec8c8b6ce85b009ad7936b2d0d157986328

git cherry-pick 2479778107b1872a512865f92f6f9072843e8bcf
解决合并冲突 ->git add 文件 -> git cherry-pick --continue
或者直接
Git push 2 分支

Git pull 更新分支内容
Git fetch 更新分支

不同代码库之间的cherry-pick
https://blog.csdn.net/qq_40102178/article/details/123378200

git remote add devorigin ssh://gucaohan@icode.baidu.com:8235/baidu/mapclient/engine-vi
git remote -v //查看是否关联
git fetch devorigin //将该库信息同步到本地
git cherry-pick 2479778107b1872a512865f92f6f9072843e8bcf

继续=执行

git submodule update --init
导航代码库编译时还需要依赖其他代码库,所以需要获取依赖代码库的权限,同时在项目文件夹下执行
git submodule update --init
参考:
https://blog.csdn.net/weixin_43976461/article/details/125926991

跨代码库融合

rsync -avh -progresss /Users/gucaohan/Desktop/baidu/mapclient/mapsdk-vector/engine/dev/src/bidu/ /Users/gucaohan/Desktop/baidu/mapclient/engine-dev/src/bidu/

rsync [options] source destination 就可以把文件从 source 复制到 destination。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值