初识Git和Idea集成Git

Git、Github/Gitee

版本控制

常见的版本控制工具

  • Git

  • SVN

  • CVS

  • VSS

  • TFS

  • Visual Studio

版本控制

  1. 本地版本控制

  2. 集中版本控制

    所有的版本数据都保存在服务器上,协同开发者同步更新或上传自己的修改

  3. 分布式版本控制 GIT

    每个人都拥有全部的代码!存在安全隐患!

    不会因为服务器损坏或者网络问题,造成不能工作的情况

Git 与SVN 的区别

SVN是集中版本式版本控制系统,版本库是放在中央服务器上的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络宽带要求较高。

GIT是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候就不需要联网,因为版本都在自己的电脑上。协同的方法是这样的,比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需要把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以之间看到更新了哪些代码和文件。

Cit是目前世界上做先进的分布式版本控制系统。

Git 历史

Bitkeeper => Git(Linux社区 大佬开发)

Git环境配置

卸载

直接反安装即可,然后清理环境变量,环境变量只是为了全局使用而已

下载对应的版本即可安装!

安装成功后再菜单中会有Git项,菜单下有三个程序:任意文件下右键也可以看到对应的程序

Git Bash:Unix与Linux 风格的命令行,使用最多,推荐最多

Cit CMD: windows风格的命令行

Git GUI: 图形界面

基本的Linux命令学习

  1. cd: 改变目录

  2. cd .. (cd 与 .. 之间加空格)回退到上一个目录,直接cd进入默认目录

  3. pwd 显示当前所在的路径

  4. ls(ll) 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更加详细

  5. touch :新建一个文件 如touch index.js 就会在当前目录下新建一个index.js文件

  6. rm 删除一个文件 如 rm index.js 就会把index,js 文件删除

  7. rm-rf/ 切勿在Linux中尝试,删除电脑中全部的文件

  8. mkdir 新建一个目录,就是新建一个文件夹

  9. rm-r 删除一个文件夹。rm-r src 删除src目录

  10. mv 移动文件,mv index.html.src.html 是我们要移动的文件,src是目标文件夹

  11. reset 重新初始化终端 相当于clear

  12. clear 清屏

  13. history 查看历史命令

  14. help 帮助

  15. exit 退出

  16. '#'表示注释

Git配置

所有的配置文件,其实都保存在本地

查看配置

查看不同级别的配置文件

查看系统config

git config --system --list

查看当前用户(global)配置

git config --global --list</pre>

Git相关的配置文件

1)D:\Tool\Git\etc: Git目录下的gitconfig --system 系统级
2)只适用于当前登录用户的配置 --global全局

设置用户名与邮箱

当你安装好Git后首先要做的是事情是设置你的用户名称和e-mail 地址。这是十分重要的,因为每次GIt提交都会使用该信息。他被永远的嵌入到了你的提交中

git config --global user.name 名称
git config --glabal user.email 邮箱


Git基本理论

工作区域

  • Workspace:工作区,就是平时存代码的地方
  • index/Stage: 暂存区,用于存放平时的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository: 仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交的所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
    本地的三个区域确切的说应该是git仓库中指向HEAD指向的版本

工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件; Userml
2、将需要进行版本管理的文件放入暂存区域;git.add
Mapper.x3、将暂存区域的文件提交到git仓库。 git commit
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

Git项目搭建

创建工作目录和常用指令
工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
本地仓库搭建
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

在当前目录新建一个Git代码库

git init

  1. clone时选择HTTPS web url,避免使用SSH一般来说应该就可以了

2、执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。

克隆远程仓库
克隆一个项目和它的整个代码历史(版本信息)
git clone [url] https://gitee.com/zhou-feifan_busifan/test_ropeok.git</pre>
注意

Git文件操作

文件的四种状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
    ">最常用的提交命令

查看指定文件状态

git status [filename]

查看所有文件状态git status

git add . 添加所有文件到暂存区
git commit -m "消息内容" 提交暂存区中的内容到本地仓库 -m 提交信息
git push</pre>

忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

为注释*.txt

忽略所有 .txt结尾的文件,这样的话上传就不会被选中!!lib.txt
但lib.txt除外/temp
仅忽略项目根目录下的TODO文件,不包括其它目录tempbuild/
忽略build/目录下的所有文件doc/*.txt
会忽略 doc/notes.txt 但不包括 doc/server/arch.txt</pre>


使用码云

github 是有墙的,比较慢,在国内的话,我们一般使用 gitee ,公司中有时候会搭建自己的gitlab服务器

1、注册登录码云,完善个人信息

2、设置本机绑定SSH公钥,实现免密码登录!</mark>(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)

进入 C:\Users\Administrator.ssh 目录

生成公钥ssh-keygen</pre>

3、<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">将公钥信息public key 添加到码云账户中即可!</mark>
4、<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">使用码云创建一个自己的仓库!</mark>
创建你的第一个仓库 - Gitee.com

Idea集成Git

1、新建项目绑定Git

  • 将远程的git文件目录拷贝到项目
    2.修改文件,使用idea操作Git
    第一种方式:傻瓜式操作
    新建文件时会提示是否添加到暂存区

  • 添加到暂存区
  • commit 提交
  • push到远程仓库

Git分支

分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!

列出所有本地分支git branch
列出所有远程分支git branch -r
新建一个分支,但依然停留在当前分支git branch [branch-name]
新建一个分支,并切换到该分支git checkout -b [branch]
合并指定分支到当前分支git merge [branch] 删除分支 git branch -d [branch-name]
删除远程分支$ git push origin --delete
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
3提交测试

Git分支

分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!

列出所有本地分支git branch
列出所有远程分支git branch -r
新建一个分支,但依然停留在当前分支git branch [branch-name]
新建一个分支,并切换到该分支git checkout -b [branch]
合并指定分支到当前分支 git merge [branch]
删除分支git branch -d [branch-name]

删除远程分支 git push origin --delete [branch-name]
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

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

推荐阅读更多精彩内容

  • 了解Git是什么以及Git的安装 01、Git是什么 目标 掌握和了解Git是什么,在实际应用中处于什么角色。 目...
    Java全栈路线阅读 450评论 0 1
  • 一.版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容...
    SuBHFeng阅读 135评论 0 1
  • git 是什么 Git是目前世界上最先进的开源的分布式版本控制系统。 需要安装git https://segmen...
    邪魅浮云阅读 166评论 1 1
  • 1.git的特点 1.最有的存储能力2.非凡的性能3.开源4.容易做备份5.支持离线操作6.容易定制工作流程 内容...
    努力学习的lfk阅读 148评论 1 3
  • 版本控制 1 概述 现有许多版本控制工具 git ,svn ,cvs 等 git 是分布式的版本控制工具,即每个队...
    动力山大阅读 560评论 0 0