git工作区和本地仓库
- 创建本地版本库
mkdir
- 添加到暂存区
touch
- 查看工作区和暂存区状态
git
- 查看git提交历史记录
git
git 一些命令
git
通过指定提交记录在git中移动
git
- git回退版本(工作区和暂存区没提交到本地仓库的内容会丢失)
git
- git查看历史命令日志
git
- git工作区和版本库
https://www.cnblogs.com/cposture/p/4178003.html 详细介绍工作区/暂存区/仓库
工作目录(working tree) = git add . => 暂存区(.git/index文件) =git commit -m '' => 本地仓库(.git/object)
![f86c95c6dab3f37da8b6f1705c198268.png](https://img-blog.csdnimg.cn/img_convert/f86c95c6dab3f37da8b6f1705c198268.png)
- git撤销修改
git
- git删除文件
//工作区手动删除了一个文件,让版本库和工作区保持一至、
git远程仓库
- 同步远程仓库
// 远程仓库并添加密钥
git本地分支
- 分支
git
- 解决冲突
git
- 存储区
// [] 代表这是可选的
- 试验功能分支(随时有可能整个模块二删除的)
git
- 多人协作
// 把该分支上的所有本地提交推送到远程库,推送时要指定本地分支。
更新git全局配置方法
1.
git cherry
默认比较HEAD本地分支和该分支追踪的远程分支
git cherry -v 展示带有提交信息的差异
git cherry -v organ/master [HEAD] 比较本地HEAD分支和远程master分支之间的差别
git cherry -v master [HEAD] 比较本地HEAD分支和本地master分支的差别
git cherry -v origin/master dev 比较本地dev和远程master的差别
git cherry-pick
通常情况下,我们需要把一个分支的所有改动都合并到另一个分支,我们会用git merge
但是有时候我们想一个分支的部分提交合并到另一个分支,这时可以用git cherry-pick
git cherry-pick <commitHash> 将指定的提交也应用于当前分支
git cherry-pick <branch> 把该分支的最新一次提交也应用到当前分支
git cherry-pick <HashA> <HashB> 将A和B两次提交应用到当前分支
git cherry-pick A..B 把A-B分支的所有提交(不包括A)都应用到当前分支,A分支必须早于B分支
git cherry-pick A^..B 把A-B分支所有的提交都应用到当前分支(包括A)A早于B
参数配置项
-e --edit 打开外部编辑器,编辑提交信息
-n --no-commit 只更新工作区和暂存区,不产生新的提交
-x 在提交信息里添加('cherry picked from commit 。。。'),方便以后查到这个提交如何产生的
-s --signoff 在提交信息里添加操作者签名,表示谁进行的这个操作
-m parent-number --mainline parent-number
如果原始分支是一个合并节点,那么cherry-pick默认失败,因为不知道具体采用哪个分支的变动
git cherry-pick -m 1 <commitHash>
采用提交<commitHash> 来之编号1的父分支的变动
通常合并节点中1号是接受变动的分支,2号是变动的来源分支
代码冲突
如果代码冲突,cherry-pick会停止下来,让用户决定如何继续操作
git cherry-pick --continue
用户解决完冲突 使用git add . 将文件改动加入暂存区,然后执行上面的命令让cherry pick继续执行
-- abort 发生冲突后,放弃合并,回到操作前的样子
--quit 发生冲突后,推出cherry-pick操作,但是不回到操作前的样子
转移到另一个远程代码库
// 添加一个远程仓库
git remote add originName git://gitUrl
// 将远程代码拉取到本地(因为cherry-pick只能挑本地有的commit)
git fetch originName
// 检查要从远程仓库转移的提交,获取哈希
git log originName/branch
// 把指定提交应用到当前分支
git cherry-pick <commitHash>
欢迎指正交流,谢谢。