Git_版本控制

目录

一:介绍

1:Git介绍

2:git服务器

3:版本控制器分

二:安装

1:安装

2:命令风格

三:Git必要设置

1:设置用户名与邮箱(用户标识,必要)

2:生成密钥和公钥

3:设置Windows的gitee凭证(来公司接手别人的电脑,所以电脑的gitee信息是别人的要修改)

四:常见命令

基本配置

分支操作

本地绑定远程

add

commit

push     

查看文件状态

其他

五:4个工作区

六:HTTPS和SSH

七:本地仓库搭建

八:本地仓库推送到远程 全过程操作

九:分支操作

查看分支

1:创建本地分支dev,并和远程分支关联(远程分支的创建也是通过本地git操作来创建的)

2:把dev分支同步到master中   ||   master同步到dev中

十:idea集成git

十一:注意事项

1:git工作区不要放在根目录:即E盘下边或者 C盘下边

2:push失败

3:git命令前面不要有空格

4:fatal: Unable to create ... git index.lock


一:介绍

1:Git介绍

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

简单说就是用于管理多人协同开发项目的技术。


2:git服务器

git服务器有很多,像github,gitee,这些都是开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。


3:版本控制器分

  SVN:集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,如服务器 会损坏,就会丢失所有的数据

  Git:分布式版本控制:所有版本信息仓库全部同步到本地的每个用户,每个人都拥有全部的代码


二:安装

1:安装

Git安装无脑下一步就行了,安装完Git会自动帮你配置环境变量 不需要自己配

设置默认编辑器notepad或者sublime都行

不用配置环境变量,安装完事他自动给你配上


2:命令风格

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

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令


三:Git必要设置

1:设置用户名与邮箱(用户标识,必要)

  git config --global user.name "bai" #名称

  git config --global user.email 24736743@qq.com #邮箱

文件件位置C:\Users\Administrator\ .gitconfig(设置用户名与邮箱后 就会有))

2:生成密钥和公钥

ssh-keygen -t rsa -C "2448003093@qq.com"

(上面是密钥,下面是公钥)

---(公钥放在github或gitee个人设置里)

   将公钥信息内容复制码云账户中

---(密钥放在sourceTree里)

3:设置Windows的gitee凭证(来公司接手别人的电脑,所以电脑的gitee信息是别人的要修改)


四:常见命令

基本配置

设置用户名与邮箱(用户标识,必要)

  git config --global user.name "bai" #名称

  git config --global user.email 24736743@qq.com #邮箱

---

查看所有配置文件(这个是包含后边的系统和用户配置的):git config -l

查看系统配置:config:git config --system --list

  文件位置:E:Git\etc\gitconfig

查看当前用户(global)配置:git config --global --list

----

分支操作

git branch命令解析_Karson Tiger的博客-CSDN博客 (大佬写的很全,借鉴一下)

      git branch -a             // 查看所有分支列表(包含 "本地和远程" 分支)(本地绿,远程红表示)

        git branch -vv            // 查看本地分支和远程分支的绑定情况 (包含最新一次提交的信息)

        git branch                // 列出 "本地" 分支,当前分支会用 * 标记(不如a)
        git branch -r             // 查看 "远程" 仓库的分支列表(不如a)
 
        git branch -v             // 查看一个分支的最新一次提交
 
        git branch --merged       // 查看哪些分支已经合并到当前分支(即哪些分支是当前分支的直接上游) 
 
        git branch --no-merged    // 查看所有未合并工作的分支

本地绑定远程

    本地仓库绑定远程github(这个是一个文件夹对应一个远程,而不是整个本地)(绑定是为了上传,不是克隆)

     git remote add origin https://gitee.com/zhang-haifeng/mycode 

     或者git remote add origin git@gitee.com:zhang-haifeng/enviroment.git

更换远程绑定

       git remote set-url origin https://gitee.com/zhang-haifeng/XXX.git

查看文件夹绑定的远程地址

         git remote -v

add

        git add .  

      (添加所有文件到暂存区(.代表所有),add和后面的点要有空格)

commit

      git commit -m "消息内容即注释"

        提交暂存区中的内容到本地仓库 -m 提交信息( commit -m 'a' 必须要有后边-m注释 )

push     

      #本地文件上传至远程        

        git push 

        git push --set-upstream origin master:master和git push -u origin master有同样的效果,都是将本地分支和远程分支绑定。用完这个命令绑定并上传后,以后再上传只用git push 就可以了

     

忽略文件:有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

#为注释

*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!

!lib.txt #但lib.txt除外

/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp

build/ #忽略build/目录下的所有文件

doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

查看文件状态

   #查看指定文件状态

       git status [filename]

   #查看所有文件状态

         git status

其他

查看提交日志git log (每个版本有不同的标识符)

查看提交及回退记录 git reflog

版本回退两个版本git reset --hard HEAD~2

前进版本git reset --hard +版本标识符(这个写前几位就行不用全写,独特的位)

文件feng.txt已提交后被删除,想恢复git checkout--feng.txt  (因为在版本库中还有这个文件)

同时删除工作空间和版本库对应信息 rm +文件名


五:4个工作区

  Workspace:工作区,就是你平时存放项目代码的地方

   (add   到暂存区)

  Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

   (commit 到本地仓库 )

  Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

    (push  到远程仓库)

  Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

文件的四种状态:

  Untracked: 未跟踪,没有加入git库,不参与版本控制(我感觉就是没有.add--错了,这其实就是你比如当前文件夹原来有.add然后你又新建了一个文件,这个 文件就是未跟踪)。可以通过add命令使得状态变为staged

  Unmodify: 文件已经入库, 未修改(表示版本库内容和文件夹一致)。可以通过add命令使得状态变为staged

  Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作(表示版本库内容和文件夹不一致)。可以通过add命令使得状态变为staged

  Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态


六:HTTPS和SSH

     都属于git的传输协议(clone和push都是传输)

借鉴大佬的文章:谈谈HTTPS和SSH_ChronoStein_2的博客-CSDN博客_ssh和https


七:本地仓库搭建

(两种方式)

第一种:创建全新的仓库,命令git init,创建完成就多出一个.git文件

第二种:克隆远程仓库,(两种方式https和ssh)

  使用码云创建一个自己的仓库

  克隆到本地,命令git clone https://gitee.com/kuangstudy/openclass.git


八:本地仓库推送到远程 全过程操作

(主要看第四步就行,其他的在必要设置里已经设置完了)

本地仓库推送到远程(两种方式https和ssh(推))( https每次fetch和push代码都需要输入账号和密码, SSH url 克隆的话,必须是这个仓库的拥有者 。 )

     将本地项目推送到远程

         1:注册码云绑定邮箱

         2:配置用户名和邮政(让仓库人知道提交人信息)

                 git config --global user.name "kuangshen" 

                 git config --global user.email  24736743@qq.com

         3:在git客户端用命令(输入完命令后多点几个回车),生成私钥和公钥

                $ ssh-keygen -t rsa -C "2448003093@qq.com"

           打开公钥并复制内容添加到码云账户设置中的ssh公钥中( 避免每次拉取提交都要输入git用户和密码)

3:码云中创建一个仓库,用来接收本地项目

4:绑定github(这个是一个文件夹对应一个远程,而不是整个本地)(绑定是为了上传,不是克隆)

    git remote add origin https://gitee.com/zhang-haifeng/mycode 

   或者git remote add origin git@gitee.com:zhang-haifeng/enviroment.git

5:将文件add和commit到版本库中

6:用命令上传到远程仓库,(敲击完命令要写yes)

        git push -u origin master

        git push --set-upstream origin master:master和git push -u origin master有同样的效果,都是将本地分支和远程分支绑定。

git push -u什么意思 和git push --set-upstream origin master:master什么意思_Will_Che的博客-CSDN博客

九:分支操作

查看分支

git branch -a             // 查看所有分支列表(包含 "本地和远程" 分支)(本地绿,远程红表示)

1:创建本地分支dev,并和远程分支关联(远程分支的创建也是通过本地git操作来创建的)

Git创建本地分支并关联远程分支_惊鸿一博的博客-CSDN博客

2:把dev分支同步到master中   ||   master同步到dev中

git 分支代码合并到master主分支上或者master合并到开发分支_git命令 所有merge到master分支打代码新增行数_码农阿茹的博客-CSDN博客


十:idea集成git

在 IDEA 中使用 Git 图文教程_华仔仔coding的博客-CSDN博客_idea使用git

分支部分:Git在IDEA中的使用(详细图文全解)_拧螺丝专业户的博客-CSDN博客_git的idea

查看git日志:

       

                                 点进去会看到comiit前后的不同

选中本地仓库:

 添加远程仓库:(一个本地可以对应多个远程仓库)

 拉取远程仓库:pull=update project

 查看分支:(idea右下角)

创建分支:

切换分支:  checkout

                                          在 分支上随便做点改动

                             提交同

将分支推送到远程:

                                                         也可以直点右上角

合并分支:(把b1合并到主分支)

                  (然后主分支就有了,b类的改动了)

如果修改 内容 就add,然后commit,然后push

Terminal是可以输入git命令的,Version Control可以查看日志和控制台,在日志中会显示进行了哪些提交 右下会显示提交前后的不同

Local changes可以看到 哪些文件进行了修改(不需要add)


十一:注意事项

1:git工作区不要放在根目录:即E盘下边或者 C盘下边

2:push失败

 原因:没有将本地的分支与远程仓库的分支进行关联

git push报错:The current branch master has no upstream branch - 简书(里面有点小问题,git branch -a是看本地和远程分支的 绿表示本地红表示远程

-------------------

原因:github中有README.md文件,而本地没有。

解决:  可以通过如下命令进行代码合并

首先git pull --rebase origin master

然后git push -u origin master

3:git命令前面不要有空格

4:fatal: Unable to create ... git index.lock

        在 .git文件夹里把index.lock删除就好

5:第一次要用clone方式拉代码,不要用下载zip方式

         zip目录不对,而且没.git文件夹

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值