一天学习使用git

  1. 云栖社区>
  2. 博客>
  3. 正文

一天学习使用git

小江同志 2018-09-01 18:08:00 浏览491
展开阅读全文

一:Git GitHub gitlab 三者的介绍

Git:是一个类似CVS,SVN的代码版本管理软件,用于敏捷高效地处理任何或小或大的项目,是一个完全分布式的版本控制工具

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步

GitHub:是一个用Git做版本控制的项目托管平台,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等,是程序猿发布和寻找好代码的天堂~

gitlab:是一款基于Git的项目管理软件

GitHub和gitlab都是基于Git建立的,可以说是git的衍生品

此处插一句广告,哈哈,GitHub是全球范围的代码托管平台,而码云是国内的代码托管平台,访问就比GitHub快多了。

或者可以利用域名重定向解决GitHub国内访问慢,方法在这: 武功秘籍

创建配置一个SSH密匙,在git bash命令框中执行命令 ssh-keygen -t -rsa -C "码云或者GitHub的邮箱地址",接着一路回车即可,最后就生成一个公钥(id_rsa.pub),可以放心给人看,一个秘钥(id_rsa),不能透露出去。

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub和码云只要知道了你的公钥,就可以确认只有你自己才能推送。GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

二:git常用命令的使用

注明:以下是根据廖雪峰大神的教程学习

img_a624df52e8fd337c3faad0c14d73b8a0.png
快速设置

1、git clone url地址(这个是代码托管地址) ——克隆远程仓库项目

    git clone -b 分支名 url地址  ——克隆指定分支的内容到本地

2、cd git-demo(本地新建的git仓库)——切换到本地git仓库

3、git status ——查看本地git仓库的状态

4、git add Readme.txt(这个是要添加的文件)——添加要提交的文件到你本地仓库的代码

5、git commit -m "提交信息"  ——提交到本地仓库

img_4bcc6fa5f746daf4a243fbd983ca47e4.png
git流程图
img_56c8d5498f45e58488682dd828385ba6.png
add操作把准备提交的文件添加到缓冲区
img_0f73c275b2015d642548253342e13247.png
commit把缓冲区的文件一次性提交到分支上

重要概念:Git跟踪并管理的是修改,而不是文件 (eg:每次修改,如果不add到缓冲区,就不会被加入到commit中)

6、git push  ——推送到远程仓库

7、从远程仓库上拉取项目下来到本地仓库2方式:

①git fetch + git merge = git pull (推荐用这种) ②git pull (太强制了,冲突时会直接覆盖本地)

8、git branch ——查看本地分支

9、git branch --all  ——查看所有分支(包括本地和远程)

10、git checkout dev  ——切换到dev(自己新建的)分支

        git checkout master  ——切换到master主分支

        git merge dev   ——合并dev分支到当前分支

11、git init  ——把当前文件夹初始化为git文件夹

12、git remote add origin url地址(远程代码仓库地址)——把本地的git仓库和远程的git仓库挂上钩

13、git diff 文件名  ——查看本地某个文件修改了什么内容

14、git branch 分支名  —— 新建一个分支

15、git log ——显示从最近到最远的提交日志,显示提交记录的详细信息

        如果嫌输出信息太多,可以加上参数 -pretty=oneline  显示提交记录的简短信息

img_15d5ead82b92f23ff02ddfcd522ae363.png

16、cat 文件名  ——查看某个文件的内容

17、git reset --hard HEAD^  ——把版本库回退到之前的版本,例如时光穿梭机,HEAD代表当前版本,HEAD^代表上一个版本,HEAD^^代表上         2个版本,HEAD~100代表上100个版本

img_c16d35ec90b578294902fa0f586aad3e.png

18、git reflog  ——用来记录你的每一次命令,所以找到了commit id就有后悔药吃了,但是记住如果push到远程仓库就没救了

img_ef4815d095f1e4846feeb2b821e9f9b3.png
廖雪峰Git教学
img_abd1b4b5a571a04a174be1ceaaca1312.png

19、git checkout -- 文件名 ——撤回未add到缓冲区的文件,记得--与文件名中间有个空格

img_e7d3170ea064291dc7c8f3fc25991bd1.png
img_0fb14e1f26fce62852305bb888ba7bd0.png
img_35e0f9d64b9cae7b5a7b754cc4a5cdab.png

20、git reset HEAD 添加到暂存区的文件名  ——git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区

21、rm 文件名  ——从本地工作区中删除文件,若是误删,可以使用git checkout -- 文件名 来从版本库中恢复文件到本地工作区。但要是使用命           令git rm 文件名 再git commit 提交删除操作就从版本库中删除了文件,就恢复不了到本地工作区了

22、git push -u origin master  ——由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

三:分支管理

img_1ca99407387385a87296122b862743c8.png
git分支图

你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

img_4ae1c93443e457dba271d5b240782a1b.png

多人协作开发的规则,如下,基本都是先pull最新的下来改完再push

img_f5261b534947ef92eee69e974cf2e857.png

四:Idea结合git开发

1、创建项目(我自已有一个小练习),把它初始化为git项目,成功后文件夹会产生一个.git文件,这个文件是记录仓库的配置和版本的,最好不要动。

img_7affe34b3b2b5e1b4a5ec0456fe3fd96.png

这些文件都会变红表示没有被追踪

img_7fd565eccc30ee0edea5da6b407adecb.png

2、右键项目 Git->Add 就把项目添加到缓冲区,文件就会变绿

img_6ca6fb241a488e005c6eafe3f85db95b.png

3、右键项目 Git->Commit  就把项目提交到本地仓库中

img_bbb5c550387e7866301f3db09a1cf509.png

确保没什么错的话就直接点commit了,如下

img_2135e42a858d8538db6f9323d8fcd9ca.png
img_6a5ec50f57722a1a5e2df67e693fe320.png

4、最后推送到远程仓库去

img_1714bbd14abe8fbc39c0bb423af34f07.png
img_3563b0e2206bd1ec6e7a23a53603d285.png

创建一个新分支并把代码上传到此分支

img_c1a69797f967a6c4a2218cbef97e931a.png
img_0a0b2dd258fa0342b37c95d4bbb21150.png

PS:使用命令行时遇到这个情况时:git add命令,git commit命令,最后git push命令推送到远程仓库,但是在git push 时出现了报错,百度了解决方案,如下,任选一种即可

img_5d00e88480cf04cb1424e3cbf85cb174.png
解决方案

这样本地的项目就推送到远程仓库了

推荐文章:

Git从码云Clone代码到本地

怎么用IDEA上传本地项目到码云/Github?

神功秘籍,讲的很好的一篇文章

IntelliJ IDEA下的使用git

网友评论

登录后评论
0/500
评论
小江同志
+ 关注