Git
Git是目前世界上最先进的分布式版本控制系统。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
安装Git
下载Git
1.linux上安装Git
2.windows上安装Git
3.mac上安装Gitbrew install git
配置
设定自己机器的全局变量
git config --global user.name "Your Name"
—— 设定用户名字,随便写git config --global user.email "email@example.com"
—— 设定用户邮箱,随便写
注意git config命令的–global参数,用了这个参数,表明你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
查看自己机器的配置信息
config 配置有system级别 global(用户级别) 和local(当前仓库)三个 设置先从system->global->local 底层配置会覆盖顶层配置 分别使用–system/global/local 可以定位到配置文件git config --system --list
—— 查看系统configgit config --global --list
—— 查看当前用户(global)配置git config --local --list
—— 查看当前仓库配置信息git config --list
—— 查看全配置
额外配置
git config --global credential.helper wincred
—— 凭证存储git config --global color.ui true
—— 开启颜色支持git config --global core.quotepath false
—— 支持utf-8编码
修改配置
git config --global --replace-all user.email "输入你的邮箱"
git config --global --replace-all user.name "输入你的用户名"
创建版本库(repository)
mkdir directory —— 创建一个空目录
cd directory
windows下目录最好不用中文
git init —— 初始化仓库
查看仓库状态
git status
本地操作
touch ddf.txtgit add ddf.txt
—— 把文件添加到仓库git add -A
—— 添加所有文件到仓库
这里如果有警告则添加git config –global core.autocrlf false;原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题。git commit -m "first"
—— 把文件提交到仓库
git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
回溯操作
git dif —— 查看difference,即查看修改内容
git log —— 查看提交历史,以便确定要回退到哪个版本。
记住:commit_id(版本号)git reset --hard HEAD^
—— HEAD指向的版本就是当前版本,该指令即为回到上个操作版本git reset --hard commit_id
—— 回溯到相应版本git reflog
—— 查看命令历史,以便确定要回到未来的哪个版本。
撤销修改
git checkout -- ddf.txt
删除文件
rm ddf.txt
从远程库克隆
- 通过https克隆
- 通过ssh克隆
远程仓库
git push —— 用于将本地更改推送到远程仓库git push -u origin master
—— 第一次推送master分支的所有内容
git remote —— 仓库关联git remote -v
—— 列出所有远程仓库的名称和URLgit remote add
—— 用于添加远程仓库git remote remove
—— 用于删除远程仓库
从远程添加到本地
git fetch
—— 从远程仓库获取更新,但并不会合并更改git pull
—— 从远程仓库获取更新,并且自动合并远程仓库的更改到本地仓库
分支操作
git merge —— 合并其他分支到当前分支
git cherry-pick —— 选择并合并其他分支的提交到当前分支
更多指令
融合进IDE
pycharm
- 基本开发流程
- 基于远程master分支新建功能/修复分支xxx git checkout -b xxx origin/master
- xxx分支提交代码commit并推送push
- 拉取所有分支提交fetch
- 切换到环境分支git checkout(以远程为主会更新本地环境分支)并merge xxx分支
- 推送远程push
- 操作图片
golang
类似pycharm
vs code
git使用规范
整体分支包括环境分支-主分支(master)、环境分支-测试分支(test)、环境分支-开发分支(dev)、功能分支(features)、修复分支(hotfixs)。
所有分支均基于主分支开发,master、test、dev三分支互不合并,三种环境分支均合并功能分支或者修复分支。
正常途径皆基于merge合并分支,如出现环境分支相差过大,可基于cherry-pick合并提交,后续以主分支为主,拆分各项分支。
旧分支使用git规范时,可以使用主分支为主,创建不同版本的功能分支、修复分支,然后cherry-pick不同版本的提交至对应的分支,最后新建dev、test分支,并合并对应的features、hotfixs分支。