一. 重要的参考资料
二. 常用命令汇总
- git初始设置
git config --global user.name "xiyang"
git config --global user.email xiyang@gmail.com
- 创建版本库,此时理解下工作区,暂存区和版本库之间的关系,查看资料
理解暂存区,为了便于理解,你可以暂时理解为:工作区,相当于文本编辑区,暂存区相当于内存,版本库相当于硬盘资料。
# 初始化创建一个仓库(版本库)repository
cd 目录
git init #在目录下产生一个.git隐藏目录,保存版本库的相关信息
- 单分支上的操作,首先是新增文件,修改文件内容,删除文件内容的操作
# 命令行touch newfile.txt,或者编辑器中编译生成一个新文件newfile.txt
git add newfile.txt
git commit -m "新增文件"
# 修改文件内容,增加两行信息:"行1","行2"
git add newfile.txt
git commit -m "修改内容,并提交"
# 修改文件内容,删除第二行内容:"行2"
git add newfile.txt
git commit -m "修改内容,并提交"
- 单分支上的操作,删除文件的方法
touch file
git add file
git rm --cached file # 删除缓存区文件
git rm file # 删除缓存区和工作区文件
rm file # 删除工作区文件
git commit -m "删除file文件" # commit方式将版本库中file文件删除掉。
- 单分支上的操作,比较工作区,暂存区,仓库文本内容的区别
git status # 查看是否有未提交的文件
git status -s # 查看是否有未提交的文件,short简短提示。
git diff # 查看是否存在工作区与暂存区
git diff --cached # 查看暂存区与仓库版本区的内容差别
git diff head # 查看工作区与仓库版本区的内容差别
- 单分支上的操作,两种查看日志的操作
# 继续3,4小点的案例,此处用reset的方式,回退提交内容。
git reset head #
git reset --hard head^/commit_id
git log # 查看提交日志,但是无法查看回退情况
git log --pretty=oneline # 以简洁模式,查看提交日志情况
git reflog # 查看提交日志,包括回退的情况
- 单分支上的操作,回退版本
# 撤销操作
git checkout -- file # 用暂存区内容,覆盖工作区,撤销工作区修改,
git reset HEAD # 用在git add file之后,git commit之前,此时reset命令,将版本区最后一次提交前内容覆盖暂存区,一般联合git checkout命令,修改工作区内容。
git checkout HEAD [file] # git checkout HEAD [file]是上述两个命令git checkout -- file和git reset Head命令的合体,相当于用版本库内容覆盖暂存区和工作区,回退到上一版本处
# 多次提交,版本回退操作
git reset --hard HEAD/HEAD^/HEAD~10 # 回退1次/2次/10次操作提交
git reset --hard commit_id # 回退到commit_id处
- 多分支的管理
git branch testing # 创建分支
git checkout testing # 分支切换
git checkout -b testing # 创建分支与切换分支合并的命令
git branch # 查看所有分支
git checkout master
git merge testing # 将指定分支merge到当前分支,注意此处的合并是快进合并。
git merge --no-ff -m "merge with no-ff" dev # 采用no-ff模式,合并分支,推荐使用该写法,考虑dev分支上,如果多人同时merge自己的feature分支,导致同时更新到一个节点上.
git branch -d testing # 删除分支
git log --graph --pretty=oneline --abbrev-commit # 图形化查看分支历史
git revert -m [编号] # 撤销某次合并。不一定好用。
git revert commit_id # 撤销某次合并。不一定好用。
- 分支管理策略
分支管理策略参考
- mster 唯一主分支,提供用户的正式版本都在此分支上
- dev 日常开发用的分支
- 临时性分支分为三种:
a. bug 修补bug(fixbug)分支
b. 功能(feature)分支
c. 预发布(release)分支
9.github远程仓库的使用
# 第一步,先在github官网上建立一个同名的项目例如:GitCMDUseCase
git remote add origin https://github.com/yujinctc/GitCMDUseCase.git
git pull origin master --allow-unrelated-histories
git push -u origin master # 推送
总而言之
git remote # 查看远程库的信息
git remote -v # 显示更详细的信息
git remote add origin https://github.com/yujinctc/GitCMDUseCase.git 连接远程仓库
git clone https://github.com/yujinctc/GitCMDUseCase.git # 复制一份远程仓库项目到本地
git remote rm origin # 关闭连接远程仓库
git push origin master # 推送分支
git pull origin master # 抓取更新