Git整理
安装 Gitwindows :exe全局变量添加,全局使用linux : yum install git; apt-get install git ;mac : xcode 自带,如果你卸载了 xcode 再使用git 会发现报错 : 提醒你安装 xcode-select —install检出仓库1 检出方式 SSHgit cloneusername@host...
安装 Git
- windows :exe 全局变量添加,全局使用
- linux : yum install git ; apt-get install git ;
- mac : xcode 自带,如果你卸载了 xcode 再使用git 会发现报错 : 提醒你安装 xcode-select —install
检出仓库
1 检出方式 SSH
git clone username@host:/path/to/repository
ssh-keygen -t rsa -C "leon.si@5imakeup.com”
密钥类型:rsa
-c 邮箱
-f 指定 save file ,不输入会提示存储路径,会车默认
这时候再回车是push 的密码
id_rsa 和 id_rsa.pub
cat ~/.ssh/id_rsa.pub
设置到仓库 的 SSH Key
Gitlab
2 检出方式 Http/Https
git clone https:/path/to/repository.git
fetch/push 需要输入账号密码,当然这种也可以设置账号密码
GayHub
$ touch ~/.git-credentials
在此文件中添加https://{username}:{password}@github.com,验证信息修改为个人账号密码,支持多行以及不同网站,如gitlab.me,git.coding.net等。再次push就不再需要手动验证了。
工作流
实际上,本地仓库由 git 维护的三颗树组成 ,
第一个是 Working Dir 工作目录 ,放代码 ,git-config文件
第二个是 Stage Index 索引/缓存区
第三个是 Commit History 提交区
理解 git commit
、add
git add
从working Dir
->Stage
缓存区 ;git commit
从Stage
提交到 -> 提交区git push
将 提交区 ->master
git chekcout
,撤销本地区 工作区的修改 ,所谓撤销就是,将未被修改的文件 覆盖,已经修改的文件,从哪儿撤销,从 缓存区 Git撤销相关
分支
命名规范(与分支管理规范相关)
- develop/ release 发布
- feature 开发
- hotfix 修改bug
- 发布
分支的一些命令:
1 git branch
查看分支 list
[root@VM_0_8_centos testGit]# git branch
* master
2 创建和切换
git checkout -b feature001
等同于
git branch feature001 && git checkout feature001
3 将本地分支推送到远程分支
git remote -v
git remote set-url origin git@github.com:leon0204/testGit.git
git push origin develop 将本地的 develop 分支 推送到线上分支
在另外一个工作区 git pull
,branch -a
就看到了 然后 checkout
到 develop
,然后 branch
也能看到了 。
4 【合并】无冲突
git checkout master
git merge feature/01/info_rebuild
5 【冲突解决】
branch a commit
branch b commit
git pull
vim 冲突文件 head and >>> 再次 commit push
.gitignore 忽略
常见的一些平台/语言下的 ignore
文件
***Windows ***
Desktop.ini
Thumbs.db
***Py***
*.pyc 被调用 不需要再编译 速度快
*.egg 类似于 jar 包 配合 easy_install
***Eclipse***
.classpath
.project
.settings/
***Intellij***
.idea/
*.iml
*.iws
***Mac***
.DS_Store
***Maven***
log/
target/
注意,ignore
文件是需要在 ignore
内的文件提交到远程版本库之前提交,如果已经有了,则需要删除版本哭的文件类型,再提交 ignore
才会生效。
Commit 的规范
git commit -m “”
/ git commit
写文本
规范:
* Added ( 新加入的需求 )
* Fixed ( 修复 bug )
* Changed ( 完成的任务 )
* Updated ( 完成的任务,或者由于第三方模块变化而做的变化 )
* Mod ( 修改 )
https
方式 如何不在Push/Pull
时输入账号密码
1 生成ssh key
ssh-keygen -t rsa -C youremail@email.com
2 复制 cat ~/.ssh/id_rsa.pub
3 修改成 ssh 方式
ssh git@github.com:leon0204/testGit.git
GitFlow
分支状态:
主要分支 (单独)
1 master
: already-production
2 develop
: newest
下次发布的开发状态
支援分支 (多个s)
- 1 特性 feature
从 develop
分支 扩展出 分支 ,merge
回 develop
- 2 release
修 bug
的时候,在测试环境中,从 develop
开一个分支出来,然后改完,merge
回 master
和 develop
- 3 Hotfix
立马修复上线,从 maste r
分出来, merge
回去
AoneFlow
主干分支、特性分支、发布分支
master feature/001 release
1 开始前,从master 创建 feature 分支 就是在 master 上面 开很多的 feature 分支 ==特性分支
2 合并 feature 分支,得到 发布 release 分支 公共分支
release/test分支对应部署测试环境,release/prod分支对应线上正式环境等等 适合美的你
- 3 发布到合并 发布分支 release/test|/prod 到主干 ,主干添加标签,删除该发布分支关联的特性分支(节省空间)
oldM 老的手机站 oldwww 老的网站
一些特殊情况
- 分支工作区未提交 不想提交 但是要新开分支
我在写一个新功能 假设我们是按照阿里的AoneFlow 分支模式来工作的,其实不重要,那我现在在,一个特性分支上修改我的这次新功能,xxxx写了一天了,预计还要2天写完,现在我不想commit ,但是这个时候 ,在master上有了一个紧急的bug ,我肯定是要切换回master,然后创建一个 feature ,GitFlow (按紧急程度或者 一个HotFix 或者一个release ,) ,
如果在feature 001 ,checkout master
就报错 提示未commit ,我就不想commit ,
git stash 这个命令 相当于把 当前working Working Dir 工作目录 push 到一个 satsh 中
check 到master ,branch -b HotFix 101 ,add commit ck master ,merge hf 101
ck 到 feature001
git stash list
stash@{0}:xxx
git stash apply stash@{0}
git stash pop
更多推荐
所有评论(0)