Git学习
Posted dcisabear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git学习相关的知识,希望对你有一定的参考价值。
-- 内容来源于 廖雪峰 老师的 《Git教程》
1. 下载并安装Git 此部分略过
2. 创建版本库:
- 在新创建的文件夹上打开Git Bash;
- $git init:创建版本库,出现一个隐藏文件夹.git
- $git add readme.txt:添加文件到缓冲区,可以添加多个文件到暂存区;
- $git commit -m "commit infomation":提交暂存区文件, -m 参数对应的是提交声明;
总体效果:
3. 修改文件并提交:
- 修改文件readme.txt;
- $git status:展示仓库当前状态;
- $git diff readme.txt:对比文件修改内容;
- $git add "readme.txt":提交文件到暂存区;
- $git commit -m "commit infomation":提交暂存区文件, -m 参数对应的是提交声明;
总体效果:
4. 版本回滚与版本升级:
- HEAD指向当前版本,HEAD^指向上一个版本,以此类推;
- $git log --pretty=oneline:展示提交记录,并在一行内展示,可以获取提交号;
- $git reset -hard HEAD^[或者直接写上版本号]:回滚到上一个版本【或者指定版本】;
- $git reglog:展示你的每一次命令,可以获取提交号;
总体效果:
5. 创建版本库:
- 在新创建的文件夹上打开Git Bash;
- $git checkout -- fiile:将工作区文件恢复到最近一次git commit / git add的状态;
- $git reset HEAD fiile:将暂存区文件退回到工作区;
总体效果:
6. 删除文件:
- $git rm file:从版本库中删除文件;
- $git commit -m "remove file info":删除文件之后需要提交;
总体效果:
7. 删除文件:
- 创建SSH Key:$ssh-keygen -t rsa -C "youremail@example.com":会在用户目录下面创建.ssh文件夹。里面有id_rsa和id_rsa.pub两个文件,其中id_rsa.pub是公钥,id_rsa是私钥;
- 登录github,右上角账号图标下拉选setting->SSH and GPG keys->New SSH key;
- 随便填一个标题,将id_rsa.pub内容粘贴到key框里面,单击Add Key。用于提交验证。
总体效果:
8. 添加远程仓库:
- 登录github,右上角+号图标下拉选New repository;
- git remote add origin git@github.com:youraccount/projectname.git:本地关联远程库;
- git push -u origin master:将master推送到远端,第一次推送添加参数-u,后续再推送可以不加参数;
- 推送成功后即可在github页面中看到项目了。
总体效果:
9. 克隆远程仓库:
- 找到远程仓库地址;
- git clone git@github.com:username/exampleproject.git:克隆远程仓库;
- cd exampleproject; ls;// 展示文件列表
10. 创建与合并分支:
- 默认使用的是master分支;
- 可以创建一个新的分支,在新的分支上不断更新提交,别人仍使用master分支,这样互不影响;
- 完成修改后,将修改内容合并到master分支,并删除创建的新分支即可;
- git checkout -b dev:创建dev分支;
- git branch:查看所有分支以及当前使用的分支(当前分支前面有一个*号);
- 修改readme.txt文档并提交:git add readme.txt; git commit -m "dev branch";
- git checkout master:切换回主分支;
- git merge dev:合并dev分支到master分支;
- git branch -d dev:合并成功后,删除dev分支;
- git branch:查看分支就只剩下master分支了。
总体效果:
11. 解决分支冲突:
- 两个分支同时修改一个文档会导致合并分支冲突;
- 创建新分支dev,修改readme.txt并提交;
- 返回master分支,修改readme.txt并提交;
- 合并分支dev 到master,出现冲突,冲突后文件内容如下图;
- 修改文件内容并提交,解决冲突;
- git log --graph --pretty=oneline --abbrev-commit:查看分支合并情况 ;
- git branch -d dev:删除分支;
总体效果:
12. 分支管理策略:
- 默认合并分支时采用Fast forward模式,即自动合并,这种模式下,删除分支会丢掉分支信息;
- 可以强制禁用Fast forward模式,在merge时生成一个新的commit,这样从分支历史可以看到分支信息;
- 合并时天剑--no-ff参数即可;
总体效果:
13. Feature分支:
- 每次添加一个新功能就开一个新分支,避免把主分支搞乱;
- git checkout -b feature-vulcan:创建一个新的开发分支feature-vulcan;
- git status / git add vulcan.txt / git checkout dev: 查看当前状态,提交文件到feature-vulcan分支;
- git checkout dev:返回研发分支;
- git branch -d feature-vulcan : 删除feature-vulcan分支的修改,但是因为没有合并,删除失败;
- git branch -D feature-vulcan : 强制删除feature-vulcan分支;
总体效果:
以上是关于Git学习的主要内容,如果未能解决你的问题,请参考以下文章