相信现在大多数公司的代码都通过git来管理,笔者小测开一枚,平时代码托管于公司的gitlab上,由于工作多人协同较少,涉及git较浅,现做深入学习和总结,供自己参考。
此处省略git的安装和配置,可参考 git的安装及配置
目录
- 分支
- 仓库
- 修改及提交
- 一些问题
开始之前先来搞清楚几个专有名词
Workspace:工作区,本地存放项目代码的地方
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
分支
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。多人协作时会看到时间线分叉又汇合,就是由于每个人都在不同的分支上开发,最后合入到master分支上的结果。
#一个小发现,首次clone代码的时候,使用git branch没有任何输出,当首次git add之后才会提示On branch ma
# 查看当前分支
git branch
# 查看所有分支
git branch -a
# 新建本地分支dev
git branch dev
# 新建本地dev分支并切换至dev分支
git checkout -b dev
# 删除本地dev分支
git branch -d dev
# 合并某个分支a 到当前分支
git merge a
# 新建远程分支dev(其实就是新建了一个本地dev分支并指向新建的远程dev分支上)
git checkout -b dev origin/dev
# 将新建的本地分支关联到某远程分支上
git branch --set-upstream branch-name origin/branch-name
# 删除远程分支dev
git push origin :dev
仓库
仓库可以理解为存放版本的追踪文件。分为本地仓库和远程仓库,本地仓库是一个存放在本地的版本库;远程仓库是托管代码的服务器,项目代码及所有的提交记录都存储在这里。
新建本地仓库有两种方式
- 在本地创建
- 克隆远程仓库
# 在本地新建
mkdir test
cd test
git init
# 指定远程主机、远程主机名为origin
git remote add origin [仓库地址]
# 删除指定的远程主机
git remote rm origin
# 克隆远程仓库
git clone [仓库地址]
修改与提交
# 代码更新
git pull
# 暂存所有修改
git add -A/git add .
# 暂存某个/某几个文件
git add [file] [file1] [file2].......
# 将暂存的文件取消暂存
git reset HEAD [file] [file1] [file2]
# 将暂存区代码提交至本地仓库
git cimmit -m "commit msg"
# 覆盖上一次提交并修改commit msg
git commit --amend -m "commit msg"
# 将提交至本地仓库的代码恢复至暂存
git reset --soft file
# 将某条提交添加到本地并提交至本地仓库
git cherry-pick [commit id]
# 将某条提交添加到本地,不提交
git cherry-pick -n [commit id]
# 将master分支提交至远程主机origin
git push origin master
# 把指定的提交的所有修改回滚,并生成一个新的提交
git revert [commit]
一些问题
- git reset --soft 和 git reset --hard
- git pull 和 git fetch
- git checkout -- [file] 和 git reset HEAD [fileß]
- git rebase
- git stash
- 解决冲突
- 回退至前三条提交,修改并提交至分支
一些问题的详细说明待更新······