转载一位老哥的总结:git链接:点我点我
托管中心维护远程库
版本控制工具
进入文件夹
git init
注意:生成的 .git 目录中存放的是本地库相关文件,不要删除
项目(仓库)级别仅在当前本地库有效
git config user.name tom #设置用户名tom
git config user.email [email protected] #设置用户邮箱
系统用户级别仅在当前登录的操作系统用户有效
git config --global user.name tom
git config --global user.email [email protected]
仅仅加了一个
--global
优先级别:
项目级别
>系统级别
信息保存位置:
~/.gitconfig 文件
git status #查看工作区、暂存区状态
git add fileName #指定文件
git add . #所有
说明:将工作区的文件添加到暂存区
git commit -m 'commit message' fileName
说明:将暂存区内容提交到本地库
git log
git reflog #常用
git log --greph #图形显示,更直观
git log --pretty=oneline #漂亮一行显示
git log --oneline #简洁显示
说明:HEAD@{移动到当前版本需要多少步}
基于索引值推荐
git reset --hard 指针位置
例子:git reset --hard a6ace91 #回到这个状态
使用 ^ 符号只能后退
git reset --hard HEAD^
例子:git reset --hard HEAD^^
注意:几个 ^ 表示后退几步
使用 ~ 符号只能后退
git reset --hard HEAD~n
例子:git reset --hard HEAD~3
soft:
- 仅本地库移动HEAD 指针
mixed:
- 在本地库移动HEAD指针
- 重置暂存区
hard:
- 在本地库移动HEAD指针
- 重置暂存区
- 重置工作区
git reset --hard 指针位置
git diff 文件名
git diff 哈希值 文件名 #和历史中的一个版本比较
git diff #不带文件名,则比较多个文件
hot_fix
master
feature_x
feature_y
git branch 分支名
git branch
git branch -v
git checkout 分支名
git checkout -b 分支名 #创建分支并直接切换到该分支
相当于把修改了的文件拉过来
git merge xxx
注意:合并分支的时候要明确谁谁合并
我在a分支里面修改了。要合并到master,就先切换到master,然后合并b
git branch -d 分支名
<<<
===
git add 文件名
git commit -m '日志信息'
注意:后面一定不能带文件名
别分手
别名 分支名
git remote -v #查看远程地址别名
git remote add 别名 远程地址
例子:git remote add origin https://xx
开发修改完把本地库的文件推送到远程仓库
前提是提交到了本地库才可以推送
git push 别名 分支名
git push -u 别名 分支名 #-u指定默认主机
例子:git push origin master
完整的把远程库克隆到本地
克隆下来后不要在主分支里面做开发
clone进行一次,从无到有的过程,更新用pull
git clone 远程地址
例子:git clone https://xx
本地存在clone下来的文件 就用pull更新
pull = fetch + merge
git fetch 别名 分支名
git merge 别名 分支名
git pull 别名 分支名
注意:解决冲突后的提交是不能带文件名的
如果不是基于远程库最新版做的修改不能推送,必须先pull下来安装冲突办法解决
提交记录简洁不分叉
没学懂,感觉有点鸡肋
混眼熟
git rebase -i 索引号
git rebase -i HEAD~3 #合并最近三条记录
说明:在vim编辑里面改成s
用软件解决冲突
1.安装 :
beyond compare
2.配置:
git config --local merge.tool bc3 #合并名称
git config --local mergetool.path '/usr/local/bin/bcomp' #软件路径
git config --local mergetool.keepBackup false #False不用保存备份
3.应用:
git mergetool
说明:--local指只在当前操作系统有效
代码review之后合并
适用于个人
邀请成员:Settings
--> Collaborators
-->填写用户名
-->打开链接接受邀请
企业 创建一个组织
方便管理
review
组织做review
通过Pull request
给开源社区共享代码
点击别人仓库的fork 到自己的仓库
– > 然后clone下来 修改后推送到远程库
--> 点击Pull Request请求
--> Create pull request发消息
为了清晰的版本管理,公司一般不会直接使用commit提交
git tag -a v1.0 -m '版本介绍' #创建本地tag信息
git tag -d v1.0 #删除tag
git push origin --tags #将本地tag信息推送到远程库
git pull origin --tags #拉取到本地
git checkout v.10 #切换tag
git clone -b v0.1 地址 #指定tag下载代码
ssh-keygen -t rsa -C GitHub邮箱地址
.ssh
目录,复制id_rsa.pub
文件内容Settings
--> SSH and GPG keys
--> New SSH Key
git remote add 别名 SSH地址
在项目开发过程中使用Git的方式
像SVN一样,集中式工作流有一个中央仓库,所有的修改都提交到了Master分支上
*
主干分支master
开发分支develop
修复分支hotfix
预发布分支release
功能分支feature
GitFlow 有独立的分支,让发布迭代过程更流畅。
在 GitFlow 基础上, 充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。
安全可靠地管理大团队的开发者