Git的配置与使用

下载安装

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

阿里镜像:http://npm.taobao.org/mirrors/git-for-windows/

下载完成后安装一直选择下一步即可

菜单

Git Bash:Linux & Unix风格的命令行(推荐使用)

Git CMD:Windows风格的命令行

配置

#查看配置
git config -l
#查看系统配置
git config --system --list
#查看当前用户配置
git config --global --list

相关配置文件: 

  1. Git\etc\getconfig:在Git安装目录下的 gitconfig文件 ===》系统配置
  2. C:\User\Administrator\.gitconifg:当前登录用户的gitconfig文件===》全局(global)配置

设置用户名和邮箱

Git在每次提交时,都会使用到设置的用户名和邮箱信息

#设置用户名
git config --global user.name "xxxxx"
#设置邮箱
git config --global user.email "xxxxx"

 global为全局配置,Git总是将使用该信息来处理操作。若在特定场景下需要使用不同的用户名和email地址,可以使用该命令去掉 --global。

使用Github&Gitlab&Gitee等远程仓库

1. 首先注册登录

2. 设置本机绑定ssh公钥,免密登录(从远程仓库克隆时复制ssh,避免繁琐登录)

两种方式的比较:

1. https方式:每次都需要输入密码和用户名

2. ssh方式:使用SSH密钥避免繁琐的登录问题

#进入 C:\Users\Administrator\.ssh 目录
#生成公钥
ssh-keygen -t rsa

 3. 生成密钥后,进入 C:\Users\Administrator\.ssh 目录打开id_rsa.pub,复制公钥

 4. 打开Gitlab选中SSH Keys将公钥复制Key框中,选中Add Key即可

 5. 在Gitlab端新建一个项目,选择Clone with SSH

6. 进入存放项目的文件夹,右击文件夹,选择Git Bash Here

git clone xxx

Git基本操作

工作流程

#从远程仓库克隆项目至工作台
git clone xxxx

#工作台上对项目进行修改后,提交到暂存区
git add .

#将暂存区的文件,提交至本地仓库
git commit -m "消息内容"

#将本地仓库上的文件,提交至远程仓库
git push

 文件的四种状态

  • untracked:未跟踪,此文件未加入到git库,不参与版本控制
  • unmodify:文件已加入到git库,未修改,文件内容与本地库的文件快照完全一致
  • modified:文件已加入到git库,经过修改,文件内容与本地库的文件快照不一致
  • staged:暂存状态

 查看四种文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

 四种状态的切换

  • 在工作区新建一个文件 xxx.txt,此时的文件状态为 untracked(未跟踪)
  • 执行git add . ,此时文件状态为 staged(暂存状态)
  • 执行git commit -m "消息内容",此时文件会存到本地仓库
  • 对该文件进行修改,再次git status,文件进入modified(文件与仓库不一致)
  • 再次执行git add . 并 commit ,文件进入unmodify状态(文件与仓库完全一致)
  • 执行git push,将文件push到远程仓库中,可以在远程仓库查看新增的文件

 忽略文件

实际上很多时候,不希望把某些文件加入到版本控制中,一般在项目中都会有.gitignore文件

#忽略所有 .txt 结尾的文件
*.txt

#忽略除 aaa.txt 除外的所有 .txt 结尾的文件
!aaa.txt

#忽略项目根目录的文件,不包括abc目录
/abc

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

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

 IDEA中集成Git

  1. 新建项目,绑定Git(将克隆下来的远程仓库的git文件目录拷贝至项目中即可)
  2. 修改文件,用IDEA操作(add至暂存区 =》 commit至本地仓库 =》 push至远程仓库)

Git分支操作 

几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。

常用指令

#列出所有本地分支
git branch

#列出所有远程分支
git branch -r

#新建一个分支,但仍停留在当前分支
git branch [branch-name]

#新建一个分支,并切换到该分支
git checkout -b [branch-name]

#合并指定分支到当前分支
git merge [branch]

#删除分支
git branch -d [branch-name]

#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

分支合并

一旦某分支有了独立内容,就需要将其合并回主分支

二路合并(逐行对比,发现行内容不同报冲突)

本地提交

System.out.println("hello world");

其他提交

System.out.println("world hello");

假设两者修改同一个文件后合并时发现这一行不一致,git无法选择保留或丢弃本地提交和其他提交,只能报冲突让人为处理。

三路合并

// master
System.out.println("hello1");

// dev1
System.out.println("hello1");

// dev2
System.out.println("hello2");
// merge 后
System.out.println("hello2");

master:主分支,为dev1和dev2的公共祖先

dev1:开发者1

dev2:开发者2

当前时dev1没有进行修改,而dev2进行了修改,git会自动把结果合并为dev2的代码

// master
System.out.println("hello1");

// dev1
System.out.println("hello2");

// dev2
System.out.println("hello3");

而如果dev1和dev2都进行了修改,此时会产生合并冲突,git无法合并,需要人为进行合并

即人为选择dev1的修改还是dev2的修改

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值