【笔记-git】《imooc-git入门》、《 imooc-版本管理工具介绍-git篇》、《imooc-版本控制入门 – 搬进 Github》、《PHP项目中的Gitflow多人协作开发工作流》

《 imooc-git入门》
地址:http://www.imooc.com/learn/1052

一、git操作
1、git查状态
(1)git status

git status // git状态
git show 9d461ad1d75b13c9be3efc75f8344babe6d8940e // 看某次修改的具体内容

(2)git log

git log // 近期提交的版本记录
git log --stat // 近期提交的版本记录,及修改的文件

2、git修改远端地址
(1)直接修改:
git remote set-url origin xxxxx.git

(2)先删后加 :

git remote rm origin
git remote add origin xxxxx.git

2、提交

git status
git checkout feature/yanqm // 确定分支,如果不是要操作的分支,则检出要操作的分支
git add index.html // 提交到暂存区
git commit -m "初次提交" // 提交到本地仓库。 -m参数表示后面可以直接跟提交信息
git push // 提交到远程分支

3、回滚

git log // 得到commit号,如果要退出log,则按英文状态下的q 
git reset --hard commit号 // 本地仓库回滚(强制回滚)
git rm index.html // 本地文件清空
git commit -m "删除了index.html" // 暂存区和本地仓库文件清空

(2)未提交之前,恢复之前的版本

如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉

我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^

git checkout -- file 可以丢弃工作区的修改

(3)
假如现在我对readme.txt添加一行 内容为6666666666666,我git add 增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。
在这里插入图片描述
git checkout – readme.txt 中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了

4、分支合并
(1)合并全部
修改了feature/yanqm,将修改的结果合并到feature/chint-develop
用merge

git checkout feature/chint-develop
git pull origin feature/chint-develop
git merge feature/yanqm  // 然后会有merge信息,按esc,然后输入:wq保存
git push origin feature/yanqm

(2)合并部分
修改了feature/yanqm的两处,分别为a、b、c,将其中两处b、c提交到另一分支feature/chint-develop
用cherry-pick

①git checkout feature/yanqm
②git log
③复制要的commit号,b为909b4a13cf3fc702aec9edace4a36f4e4d61fa71,c为c39d50cfde90d3614c0c73da5d74684da55acf40
④git checkout feature/chint-develop
⑤git cherry-pick  909b4a13cf3fc702aec9edace4a36f4e4d61fa71 c39d50cfde90d3614c0c73da5d74684da55acf40 // 后两串分别为b、c的commit号
// commit-hash使用空格分割, commit-hash最好按提交时间先后排列, 即最先提交的commit放在前面.
⑥git push

cherry-pick 过程中也是可能会产生冲突的,解决冲突后先 add,然后使用 git cherry-pick --continue。
如果想放弃 cherry-pick,使用 git cherry-pick --abort
在这里插入图片描述

5 基于原有分支创建新分支

git checkout -b  develop dice-origin/feature/add_company // 基于来源与dice-origin的feature/add_company创建develop分支
git push dice-origin develop // 推送到远端

6、让某分支基于另一分支

git checkout master
git reset --hard feature/add_company
git push origin master --force

5、冲突解决

本地修改冲突的地方
然后按提交的方式提交代码,add commit 等

6、查看分支

git branch // 查看本地所有分支 
git branch -r // 查看远程所有分支
git branch -a // 查看本地和远程的所有分支
git log dice-origin/feature/chint-develop(分支名) // 查看某个分支近期的提交

7、新建分支
(1)新建分支

git branch <branchname> // 新建分支

(2)基于原有分支创建新分支

cd ~/git/asgard-frontend
git status // 获取id号:dfa6
git checkout -b 新分支名 要复制的id号 // git checkout -b feature/add_company dfa6

8、删除分支
(1)删除本地分支

git branch -d <branchname> // 删除本地分支
git branch -d -r <branchname> // 删除远程分支,删除后还需推送到服务器
git push origin:<branchname>  // 删除后推送至服务器

(2)删除远端分支

git branch -d -r <branchname> // 删除远程分支,删除后还需推送到服务器
git push origin:<branchname>  // 删除后推送至服务器

可以简写成如下方式:

git push origin -d <branchname>  // 删除远端分支(单个)

9、重命名分支

git branch -m <oldbranch> <newbranch> // 重命名本地分支
/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/

10、git远端信息

git remote -v // 查看远端信息,fetch下来的地址,push上去的地址。得到信息webstorm-vcs-git-remotes的信息

11、git中一些选项解释:

简写全称释义
-f–force强制
-d–delete删除
-D–delete --force
-m–move移动或重命名
-M–move --force
-rremote远程
-a–all所有

12、代码上传命名规范
在这里插入图片描述
在这里插入图片描述


未看完:《 imooc-版本管理工具介绍-git篇》

地址:http://www.imooc.com/learn/208

一、多人合作经验
1、多用客户端和工具,少用命令行,除非是在linux服务器上直接开发。
2、每次提交前,diff自己的代码,以免提交错误的代码。
3、下班回家前,整理好自己的工作区。
4、并行的项目,使用分支开发。
5、遇到冲突时,搞清楚冲突的原因,千万不要随意丢弃别人的代码。
6、产品分布后,记得打tag,方便将来拉分支修改bug。


未看完:《imooc-版本控制入门 – 搬进 Github》

地址:http://www.imooc.com/learn/390
暂无


《PHP项目中的Gitflow多人协作开发工作流》

地址:http://www.imooc.com/learn/751

第01章

1-1 Gitfolw 各分支交互流程分析

一、gitflow
1、gitflow定义了一个围绕项目发布的严格的分支模型
2、gitflow仍然用中央仓库作为所有开发者的交互中心。
二、 master: master分支,存储正式发布的历史。发布的版本号
hotfix:上线分支,bug情急修复分支
release:发布分支,发布上线的时候
develop:开发分支,作为功能的收集分支。
feature:功能分支,每次开发新功能的时候都会有对应的feature分支
在这里插入图片描述

第02章

2-1 SourceTree创建Gitflow结构

一、repository:[rɪ’pɑzə’tɔri],仓库。
二、feature分支是从develop打出来的。
三、功能分支——feature分支:
1、使用develop分支作为父分支,
2、每个新功能位于一个自己的分支
3、新功能完成后,合并回develop分支。
4、新功能提交应该从不直接与master分支交互。
5、分支名称feature/[feature name]。

第03章

3-1 发布分支操作

一、发布分支:release分支
1、使用develop分支作为父分支。
2、这个分支只应该做bug修复、文档生成和其它面向发布的任务。
3、发布完成之后,发布分支应该合并到master分支并分配一个版本号打好tag。
4、从新建发布分支以来的做的修改要合并回develop分支。
5、当前发布分支名称:release/[release version No.]
6、当前发布bug修复分支名称:release-bugfix-[Version No.]/[bug name|bug No.]

3-2 维护分支操作

一、hotfix分支:
1、要从master分支上建立新的分支。
2、develop分支第一次从master分支fork出来,此后独立成长。hotfix分支一直从master分支fork出来。
3、修复完成,应该马上合并回master分支和develop分支。
4、master分支应该用新的版本号打好tag。
5、分支名称:hofix/[bug name|bug No.]。
二、master,develop,feature,release形成一个闭环。
线上bug需要紧急修复时,master分支上fork一个hotfix分支,hotfix分支完成后,会合并到master分支,也会合并到develop分支。
三、feature往前推进过程中,定期将develop分支合并feature分支,这样可以使冲突最小化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值