git初始化配置步骤:
1.配置自己的git的名字和邮箱
$ git config --global user.name "your name"
$ git config --global user.email "email@example.com"
- 创建一个想用来存放git文件作为版本库的本地文件夹,进入该文件夹
mkdir gitFile
cd gitFile
//pwd 可以查看当前路径 - 在该文件夹内 git init
把这个目录变成git可以管理的仓库
//路径下多了 .git隐藏文件
//ls -a 可以查看所有文件,包括隐藏文件 - 生成自己的shh key
ssh-keygen -t rsa -C "email@example.com"
//然后一路回车
//多了 ~/.ssh,该路径下有秘钥
5.将公共秘钥拷贝需要的平台上
//cd ~/.ssh
//拷贝id_rsa.pub中所有内容
git项目开发使用流程
1.开发的时候clone项目到本地
2.切换到自己的开发分支,可以在feature分支新建本次开发分支:
git checkout -b feature/add-new-xxxx
3.开发后将修改提交到自己的开发分支
git add . && git commit -m "对应描述"
git push
4.测试的时候,需要将本次开发的分支merge到develop分支上,最好merge之前提pr。
5.如果本地分支和develop出现冲突,新建一个分支,git checkout -b hotfix/add-new-xxxx,将develop分支最新的内容都拉下来,将feature分支合并到hotfix分支,然后在feature分支解决冲突,解决完冲突后,将hotfix分支合并到develop分支。此时,feature分支上的内容是最新且没有冲突的,并且feature上的内容都来自master,不会被develop污染。
6.测试完成没有问题后,将feature分支merge到master分支上。
7.最后,删除开发中用到的feature/add-new-xxxx、hotfix/add-new-xxxx分支。
常用指令:
git log //提交历史记录
git reflog//命令历史
git reset --hard HEAD^ //回滚到上个版本
git reset --hard 版本号前几位 //回滚到特定版本
//HEAD 表示当前版本
//HEAD^上一个版本
//HEAD~100前第一个版本
git status //查看所在分支以及修改的文件
工作区 -> 暂存区(stage) -> 分支(如master) -> 远程仓库(origin)
git add <file> //将文件修改提交到暂存区
git commit -m '说明' //将修改提交到分支
git checkout --<file> //丢弃文件在工作区的修改
git reset HEAD <file> //可以把暂存区的修改撤销掉(unstage)
git push ( origin master) //提交到远程仓库
//第一次git push -u ,-u参数可以将本地的master分支和远程的master分支关联起来,以后可以直接git pull或git push
git remote add origin git@ssh://git@git.sankuai.com/hfe/flight-mktep.git //关联远程库
git clone git@ssh://git@git.sankuai.com/hfe/flight-mktep.git //克隆远程库
//Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
git branch //查看分支,当前所在的分支前面有*
git branch -b <brancName> //创建并切换新的分支
//相当于
//git branch <brancName>
//git checkout <brancName>
git branch -d <brancName> //删除分支
git branch --set-upstream <brancName> origin/<brancName> //建立本地分支和远程分支的关联
git merge <brancName> //合并某分支到当前分支
git log --graph //可以看到分支合并图。
git tag <tagName> //打tag
git tag // 查看所有tag
git show <tagName> //查看标签信息
git push origin <tagname> //推送一个本地标签
git push origin --tags //推送全部未推送过的本地标签
git tag -d <tagname> //删除一个本地标签
git push origin :refs/tags/<tagname> //可以删除一个远程标签