Git

一、引言

版本控制工具 svn git github  分布式

在单人开发过程中,需要进行版本管理,以利于开发进度的控制。

在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。


二、介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

官网:https://git-scm.com/

Git 修改的是文件里的内容,不是文件

三、Git安装

1.下载Git

下载Git https://git-scm.com/downloads

2.安装

安装,除了安装位置外,其他一直下一步即可

3.基本配置

    安装后,打开cmd

git config --global user.name "Your Name" #用户名

git config --global user.email "email@example.com"  #邮箱

# 查看信息

git config -l

4.测试

git version   查看git版本


四、架构

版本库:工作区中有一个隐藏目录 .git,这个目录不属于工作区,而是git的 版本库,是git管理的所有内容

暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。

分支:版本库中包含若干分支,提交的文件存储在分支中


五、仓库

对应的就是一个目录,这个目录中的所有文件被git管理起来。

以后会将一个项目的根目录,作为仓库。

仓库中的每个文件的改动 都由git跟踪。

1.新建仓库

选择一个目录,执行指令:git init

2.工作区: 可以是 自定义的文件夹

执行git init的目录即为工作区,如上例,D:\repo1目录即为工作区【不包含.git目录】

所有文件,都首先在工作区新建,然后可以存入仓库(版本库),进行版本控制。

3.暂存区: .git 目录内

作用:可以让我们反悔的(撤回的)

暂存区也在 .git 目录内,工作区的文件进入仓库时,要先进入暂存区。

4.分支

版本控制,简单说,就是记录文件的诸多版本,分支就是这些版本的最终记录位置


六、基本操作

先add,再commit -m

1.查看仓库状态

执行 git status 可以看到工作区中文件的状态(用于追踪文件)

2 暂存文件

执行 git add . 将工作区中的文件全部存入暂存区

3.提交文件

执行 git commit -m "这里写提交的描述信息" 作用是将暂存区的文件存入分支,形成一个版本

git init : 将本地文件夹和git联系起来

git add xx文件 :  添加工作区中的文件到暂存区

git commit  -m "说明文字"  : 将暂存区中的所有文件提交到分支上

git status : 查看文件状态

git log : 查看分支上所有的版本信息


git diff 文件名:查看修改过的信息


git reset --hard HEAD^ : 回溯到上一个版本  ^^^三个版本    ^100 一百个版本

git reset --hard 版本号 : 回溯到特定版本


git remote add origin 远程仓库地址:将本地仓库与远程仓库连接

git push -u origin 本地分支名称 :

          git push -u origin master  

        将本地仓库推送到远程(第一次推送时 要加 -u 目的是将远程的master和本地的master关联到一起)


git clone 远程项目地址:克隆




git reset HEAD 文件名:将刚放入暂存区的文件,撤回(第一次反悔)


git checkout -- 文件名 : 撤回对文件内容的修改,一旦撤回成功,无法返回(1、撤销的文件是在工作区中的,还未进入暂存区)这条命令是危险的

2、如果从工作区add 到暂存区(1)时,这时再次对文件修改,使用 git checkout -- 文件名  时,会撤回到暂存区(1)时的状态。 


删除: 

    1:rm 文件名.类型 删除本地库的文件  2:使用 git status  会检测到本地文件已被删除

    3:选择真删除还是假删除(git checkout -- 文件名.类型    恢复)  

    4:真删除 git rm 文件名.类型 然后 git commit -m "说明文字 "  完成删除    

    5:如果本地库删错了,虽然本地库没有了,但版本库里还存在,可以进行回复

恢复删除前的文件


git reflog :查看历史操作

当电脑关闭时,还想要退回以前版本时 :

七、远程仓库

当多人协同开发时,每人都在自己的本地仓库维护版本。

但很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库

1 远程仓库工作模式

2 远程仓库选型

有很多远程仓库可以选择,比如 github(https://github.com/),码云(https://gitee.com/);

此两种可以注册自己测试使用,但如果是商业项目,需要更多支持需要付费。

公司内部也可以有自己构建的远程仓库(http://qianfeng.qfjava.cn:8087/users/sign_in)。

3 基本操作

每个开发人员,在面对远程仓库时,会面临的一些基本操作。

3.1 注册git服务器账号

码云 注册账号,并登录。

进入公司后,很可能会使用公司自己搭建的git服务器,则账号向领导索要即可。


4、创建远程仓库:

图上的有三个使用选项 不要勾选,否则就不出现下图中的简易命令

5、如何将本地仓库传送到远程:

    1、先创建一个远程仓库(远程仓库名称最好和本地仓库名称相同)

    2、在本地仓库添加文件,然后提交到本地版本库

    3、在本地仓库 黑窗口编写:git remote add origin ....(远程仓库的地址) 如下:

    git remote add origin https://gitee.com/kongchong776/git_repositroy.git

    4、将本地仓库推送到远程:git push -u origin master  

(第一次推送时 要加 -u 目的是将远程的master和本地的master关联到一起)

第一次连接要输账号和密码


6、如何将修改后的本地文件上传到远程仓库


7、如果修改的文件要上传到远程仓库前,已有人将远程仓库修改时:

应:

注:合并冲突后,最后再pull一下,检查是否又有人提交代码

github 和gitee 差不多

8、密钥

第一步: $ ssh-keygen -t rsa -C "自己的邮箱地址"

第二步: 一般情况本地密匙会生成到

C:\Users\Administrator\.ssh 目录下,里面有公匙和私匙,私匙不能泄露,公匙可以对外使用

第三步: 将公匙id_rsa.pub里面的内容设置到github里面即可

注意: 可能设置好密匙以后,在向远程仓库push数据时还会让输入用户名和密码问

题,不是设置的密匙没有生效,而是因为在进行本地库和远程库连接时使用的远程

仓库的地址是https的地址,而ssh的密匙只针对于ssh提交有效,所以需要修改远

程库地址为ssh方式


修改https为ssh的方式:

第一步: 找到本地仓库里面的.git文件夹(是一个隐藏文件)

第二步: 修改里面的config配置文件里的url属性值为ssh地址即可

这时在向远程仓库提交就不会再让输入用户名和密码了。


八、分支

1、创建与查看

git branch : 查看分支

git checkout -b dev :创建dev分支,并切换到dev分支(组合命令):

    相当于 git branch dev  +git checkout dev

git branch 新分支名称 :创建新分支

git checkout 分支名 :切换分支


2、切换分支  git checkout ...


3、分支合并 -- git merge 目标分支

将目标分支合并到当前分支 (注意:不要写反)

4、查看所有分支

git branch

5、删除分支

git branch -d ...


6、将分支提交到远程仓库

git push origin dev(分支)

    删除远程仓库中的分支

    git push origin --delete dev(分支)


gitblit

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