一天学习使用git

一:Git GitHub gitlab 三者的介绍

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

Git的优点:①防止代码丢失;②远程同步代码;③利于团队协作;④记录代码版本;⑤代码还原

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而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常用命令的使用

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

快速设置

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 "提交信息"  ——提交到本地仓库

git流程图
add操作把准备提交的文件添加到缓冲区
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  显示提交记录的简短信息

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

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

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

廖雪峰Git教学

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

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分支关联起来,在以后的推送或者拉取时就可以简化命令。

三:分支管理

git分支图

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

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

四:Idea结合git开发

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

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

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

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

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

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

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

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

解决方案

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


推荐文章:

Git从码云Clone代码到本地

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

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

IntelliJ IDEA下的使用git


更新:

这有一篇非常简洁的文章将本地项目push到码云上的文章,我贴出来分享:通过git把本地项目push到码云上

还有可能是由于我之前改过git的密码,而本机计算机之前存的密码凭证没有更改过,所以出现了再clone和push项目时总是报错:fatal: Authentication failed for 'https://gitee.com/  还有Incorrect username or password (access token)的错误、这里通过百度

输入命令git config --system --unset credential.helper  重置用户配置,之后再重新push就会让你重新验证用户名和密码了,于是问题得以解决。如下图操作:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,500评论 0 13
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,645评论 9 163
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,860评论 5 147
  • “如果没有你,良辰美景更与何人说”当开头没有恰当的问候语时,我的年代里却多了很多的诗歌和远方。也许不是每个人都理解...
    舟文月阅读 287评论 0 1
  • 289.疾病的产生源自于你的基本假设 文字整理 心空 演讲者 许添盛 我的老师赛斯讲到疾病时说:“其实疾病的产生主...
    心空站阅读 280评论 0 1