- vcs介绍与发展
- 发展本地vcs=>集中式vcs=>分布式vcs
- Git工作原理
- Git介绍
- 工作框架:【远程仓库(中心服务器)】<-->【本地仓库<->暂存区<->工作目录】
- Git与其他VCS(version control system)对比
- 架构设计不同
- 分制管理:先有项目,后有分支,后有版本,分支的范围比版本要高一级
- 内部数据存储方式
- Git shell应用
- Git命令:
- mkdir local_repo????//创建文件夹,作为版本仓库的目标目录
- cd local_repo ? ? ?//进入新创建的文件夹
- mkdir FirstGit? ? ??//在根目录下,创建第一个要进行git版本管理的文件夹
- cd FirstGit? ? ????//进入项目所在的文件夹
- git init ? ? ? ?? ?//创建本地git仓库
- touch input.txt?
- echo "i am a new file,i will be added to git vcs" > input.txt//创建待git管理的文件
- git add input.txt ? ? ? ? ? ? ? ??//提交文件到缓存区?
- git commit -m "first commit" ? ?//提交文件到本地库
- git diff working_file_path??//比较-工作区和缓存区差异
- git diff --cached input.txt ?//比较缓存区和本地仓库的差异
- git diff HEAD input.txt ???//比较工作区和本地仓库的差异
- git add input.txt????git commit -m "second commit"??//提交之前变化的文档
- git status //查看状态
- git log //查看日志
- git reflog //查看那所有分支的所有操作记录
- 版本回退
- git reset --hard HEAD^ ? ?//回到当前版本的上一个版本
- git reset --hard HEAD@{1} ? //回退到指定版本
- 撤销修改
- git checkout -- filepath ? ? //将版本库中的指定文件覆盖掉工作区中的指定文件(工作空间文件已修改(但此文件已加入到版本库管理),但没有add到缓存区)
- git reset HEAD filepath ? ?//将该filepath对应的缓存区的内容删除掉,对工作区没有任何改动。(工作空间已修改(曾经被添加到版本库中),已添加到缓存区,但没有添加到版本库)
- git reset --hard HEAD^ ? ?//回到当前版本的上一个版本
git reset --hard HEAD@{1} ? //回退到指定版本
(工作空间已修改,已添加到缓存区,且已添加到版本库,但没有推到远程库。)
-
-
- rm -rf filepath ? ?//在工作目录中误删除某个文件
git checkout -- filepath ? ?//将版本库中的文件还原到误删除的文件中
(rm -rf误删除某文件的还原)
-
-
- git reset HEAD filepath ? //将该文件在缓存区的删除操作移除掉
git checkout -- filepath ? ?//从缓存区移除对该文件操作后,即可按应用场景④ 的操作还原。
(git rm误删git文件的还原,并没有commit提交)
- 远程仓库操作
- 分支管理
- 分支介绍
- 分支作用
- 分支设计
- 分支操作:
- 查看本地分支:git branch
- 查看远程分支:git branch -r
- 查看所有分支:git branch -a
- 创建分支:git branch branchName
- 切换分支:git checkout branchName
- 创建并切换分支:git checkout -b dev
- 删除分支:git branch -d dev
- 推送新的分支到远程:
git checkout dev ? ? ???????????????//切换分支到dev
touch newBranch.txt ? ? ? ? ? ? ? ? ? ?//创建待版本管理文件 ?
echo "new content" > newBranch.txt ?//修改newBranch.txt文件
git add newBranch.txt ? ? ? ? ? ? ? ? ?//加入缓存区
git commit -m "dev branch commit"? //提交缓存区数据至dev分支
git push origin dev:dev ? ? ? ? ? // 推送本地的dev分支到远程仓库的dev分支
-
-
- 冲突合并:
- 冲突原因:当多个分支或者多个开发者,同时修改相同文件时,经常会出现合 ??并冲突问题。
- 构造冲突
|