git 使用

发布时间 2024-01-02 11:28:23作者: 玥茹苟
 /////如何删除远程分支上origin\y12345678的最新1条提交记录
1、git reset --soft HEAD~1   //表示本地或者暂存区撤回一条提交记录
1、git reset --hard HEAD~1   
2、git push origin y12345678 -f

//git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;
//git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;

// 分支
git clone -b 分支名称 git地址

//撤销文件修改
git checkout a.cpp

//回退 到上次提交
git reset HEAD^
git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>  # 回到其中你想要的某个版
//使用 git revert 取消提交

 git revert 和 git reset的区别
- git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
- git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除


/////cherry- pick
将一个分支上的某个commit合并到另一个分支,可用使用cherry-pick命令实现。
比如将dev分支上commit_id为f99f2b57b7ee72d55a08e699fbeec34cbac96cb8的提交合并到master分支:
1)切换到master分支:git checkout master
2)执行cherry-pick命令:git cherry-pick f99f2b57b7ee72d55a08e699fbeec34cbac96cb8
    修改冲突后: git cherry-pick --continue
3)推送到远程master仓库:git push
注意master上新的commit id与dev上的id并不相同,即只是将dev上的修改拷贝过来作为一个新的提交,这就会带来一个问题:cherry-pick之后,dev想再次merge到master,要先对dev分支进行rebase变基。

d8258488d825112cfbc5ddac385c191bb3129479

/////////////
//创建本地分支 拉取远程
git pull   //先拉取
git checkout -b runyang-tmp origin/runyang-tmp
//删除远程分支
git push origin -d ddb-dev
//删除本地分支
git branch -D ddb-dev

//创建远程分支
git push origin 分支名

git checkout -b xxx
git push -u origin xxx  远程上的分支更新成功 // xxx 是你分支的名字
///查看修改文件
git diff src/lxCloudProcessor/QCloudProcessorThread.h

///本地分支间的合并
git checkout master
git merge dev
键入这个命令后我们就成功地将本地的dev合并到了master分支上,之后再使用push命令将本地的master推送到远程仓库就可以啦
///远程合并本地
git checkout master
git pull origin dev

///子模块
git submodule update --init --recursive
##子模组 'basis'(git@192.168.3.102:hontai/basis.git)未对路径 'basis' 注册
git submodule sync
##为 'basis' 同步子模组 url
##为 'module/localization_sdk' 同步子模组 url

//////Git如何从另一个分支选择性合并或挑选更改
在本文中,我们将介绍如何在Git中从另一个分支选择性地合并或挑选更改。当我们在不同的分支上开发多个功能或修复不同的bug时,可能需要将另一个分支上的特定更改合并到当前分支上。
Git cherry-pick命令
在Git中,使用cherry-pick命令可以选择性地合并或挑选来自其他分支的单个或多个提交。使用此命令时,可以指定要挑选的提交的哈希值或使用分支名和提交范围来选择一系列提交。例如,要选择来自branch1的提交A和B,我们可以使用以下命令:
$ git cherry-pick <commitA> <commitB>