0、远端库 和 本地库(版本区、暂存区、工作区)
- 首先区分一下远端库和本地库:远端库是github或者gitlab提供的远端的代码存储;本地库是指自己电脑上的区域
- 对于本地库:分为三个区:工作区、暂存区、本地库区
git add之前的叫工作区,git add 之后的叫暂存区,git commit 之后就到了本地库区了 - 我个人来说,暂存区一般使用不多,一般就是在工作区改代码,完成之后直接就add和commit就提交一个新版本了
1、配置
$ git config --global user.name “yeqiu”
$ git config --global user.email "kevin.qwk@inc.com"
$ ssh-keygen -t rsa -b 2048 -C "kevin.qwk@inc.com"
$ cat ~/.ssh/id_rsa.pub //windows的话是在用户目录下的.ssh
在github或gitlab上添加公钥
2、远端库操作
#克隆远端库:
git clone //注意,有时候git不行就用http
#列出远端库:
git remote -v
#本地代码设置远端库:
git remote add origin git@gitlab.inc.com:team/project.git
#同步远端库
git pul //git pull origin branch_name
#上传代码
git push //git push origin branch_name
#强制上传
git push origin branch_name --force 或 git push -f origin branch_name
3、本地操作
一波操作
coding //此时修改或创建的文件属于 工作区,属于“untracked files”
git add . //此时将文件添加到了 暂存区,但属于“not staged for commit”
git commit //此时保存到了本地版本区
git commit –amend //可以对上次提交的内容进行修改,也可以修改提交说明
#查看所有文件状态
git status //查看当前仓库中文件的状态
#查看修改情况
git diff //不加参数即默认比较工作区与暂存区
git diff HEAD //比较工作区与最新本地版本库
git diff --cached //比较暂存区与最新本地版本库
#查看版本情况
git log
git log --oneline
#回滚
git reset (-mixed) HEAD~ //回退一个版本,回退到暂存区,不影响工作区
(我一般用于觉得上一个版本提交的不完善,回退下,稍微修改修改再提交成一个版本)
git reset --hard HEAD~ //回退一个版本,暂存区和工作区都变为撤销的那个版本
(git reset --hard origin/add_queryStatus //可以用于强制拉取远端分支并覆盖本地)
git reset --soft HEAD~ //回退一个版本,回退到暂存区,但不清空暂存区,不影响工作区
#版本合并
1、查看版本,看看要合并哪些版本
git rebase -i HEAD~6 //HEAD后面的就是要合并的版本个数
2、修改配置信息,改pick为sqush,一般保留最初的一个版本为p,其他的改为s,表示将这些合入pick的版本
3、添加描述信息
4、强制上传远端仓库
git push origin branch-name --force
4、分支操作
# 查看分支:
git branch
#一波操作:
$ git checkout master //切换到master
分支
$ git checkout -b feature-discuss //分出一个功能性分支
$ touch discuss.py //假装discuss.py就是我们要开发的功能
$ git add .
$ git commit -m ‘finish discuss feature’ //提交更改,多次测试以后
$ git checkout master //回到主分支
$ git merge --no-ff feature-discuss //把做好的功能合并到develop中
$ git branch -d feature-discuss //删除功能性分支
$ git push origin master //把master提交到自己的远程仓库中
# 主干更新后,分支操作:
首先提交分支版本:
$ git add .
$ git commit -m “”
回到主分支:
$ git checkout initial
更新:
$ git pull
切换到分支:
$ git checkout yeqiu
更新:
$ git pull
这时候会让你合并,生成新版本
$ git add .
$ git commit -m “”
这时候分支就同步到主干最新的代码,还保留自己改动的版本了
场景化:
待补充……