一、git初始化
git思路:首先从代码库fork一份最新代码到自己git账号里面,后期所有修改全在自己账号里的git代码库进行,提交代码完成开发后,再以发送merge request请求的方式,把自己负责的分支代码合并到主服务器git代码库中(fork的代码库)
本地git使用:
设置全局参数:名字和Email地址
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
配置对等性验证
ssh-keygen -t rsa -C "youremail@example.com" 生成公钥
配置 id_rsa.pub 中的公钥到git服务器中
从远程仓库克隆代码至本地
git clone git@github.com:michaelliao/gitskills.git
注意:
https://github.com/michaelliao/gitskills.git https协议每次推送都要输入密码
修改协议步骤:
查看传输协议
git remote -v
删除原始地址
git remote rm origin
添加新地址
git remote add origin git@github.com:username/repository.git
注:使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。
例如:
git remote add github git@github.com:michaelliao/learngit.git
git remote add gitee git@gitee.com:liaoxuefeng/learngit.git
确认传输协议
git remote -v
二、git使用
拉取远程仓库代码到本地
git pull
查看所有分支
git branch
创建并切换到dev分支,这个命令等于git branch + git checkout,下面命令是克隆当前所在分支,然后以dev命名
git checkout -b dev
注意:切换分支之前,留心你的暂存区或者工作目录里,那些还没有提交的修改,它会和你即将检出的分支产生冲突从而阻止 Git 为你切换分支。切换分支的时候最好保持一个清洁的工作区域。或使用 stashing 和 commit amending命令来绕过这个问题
添加文件到暂存区
git add readme.txt
从暂存区提交文件到版本库
git commit -m "branch test"
切换到master分支
git checkout master
合并dev分支代码到master分支
git merge dev
删除dev分支
git branch -d dev
查看所有分支
git branch
推送本地master分支到远程仓库,并关联本地master和远程master(-u 参数作用),origin 是远程仓库的默认叫法
git push -u origin master
git push origin master
三、git回滚
git回滚分两种:reset、revert
两个命令适用场景不一样
reset:如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
revert:如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。
reset命令使用流程:
查看版本号
git log --pretty=oneline
回退版本
git reset --hard 目标版本号
推送到远程库(-f 参数为强制提交:此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧)
git push -f
revert命令使用流程:
查看版本号
git log --pretty=oneline
回滚版本
git revert -n 版本号
提交版本(这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。)
git commit -m "备注信息"
推送到远程库
git push
详细问题参考官方文档:https://git-scm.com/book/zh