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学习的主要内容,如果未能解决你的问题,请参考以下文章

git学习总结

Git学习——Git分支篇(未完)

Git系列学习-Git安装

git学习笔记

天天都在用Git,那么你系统学习过吗?学习过程

学习git