git的使用

简介: git的使用

Git

版本控制工具,对文件或内容做版本控制

记录文件在不同的时间点的状态,追踪到文件在不同的时间点下的不同状态。

可以协作的、也可以公开、可以追踪历史网盘 → 协作开发

GitHub 996icu

Linus → Linux、Git、git的命令行里可以使用linux的一些命令

分布式版本控制工具(Git)、集中式版本控制工具(SVN)

离线可用

Git的操作流程

pull:本地仓库落后于远程仓库,可以通过pull拉取远程仓库更(四声)新的这部分

push:本地仓库领先于远程,可以通过push推送给远程领先的这部分内容

工作区:是看得见摸得着的地方,开发的位置

add:将工作区的变化(指定文件)提交到暂存区

commit:将暂存区所有的变化都提交到本地仓库,产生版本信息

Git的安装

next → finish

使用Git

创建远程仓库

注册账号:记住用户名和密码

clone 获得本地仓库

git clone 仓库地址 → 克隆到当前位置

git clone 仓库地址 文件夹 → 克隆到指定文件夹

我们通常会使用一个这样的命令 git clone 仓库地址 **. ** → clone到当前文件夹

注意:

  • .git文件夹是一个隐藏文件夹,不要直接操作;
  • .git文件夹所处的目录就是工作区的根目录;也可以工作蓝色文字来区别
  • 工作区产生的变化都会被git识别

status 查看状态

git status

查看工作区和暂存区的状态,查看变化在工作区,还是已经提交到暂存区了

查看文字颜色:红色工作区绿色暂存区

![外链图片转

add 工作区提交到暂存区

git add 文件名

git add *.java 提交某个类型的文件中产生的变化

git add src/* 提交某个目录下的文件中产生的变化

git add . 提交当前目录下所有的变化(谨慎操作),使用之前先git status

commit 提交到本地仓库

会产生版本信息,版本信息里包含本地的用户信息

第一次提交之前要先设置本地的用户信息

用户信息设置

直接修改配置文件

c:/Users/当前用户/.gitconfig (ini格式)

如果你没有这个文件可以新增一个,如果是windows,不允许创建没有名字的文件

如果window不允许创建,你可以打开git的bash → touch .gitconfig

[user]
  email = shitoushaoxia1993@gmail.com
  name = shitoushaoxia
  
[credential]   
    helper = store

使用命令修改 → 修改配置文件

git config --global user.name 值

git config --global user.email 值

git config --global credential.helper store 保存用户名密码的

执行提交

git commit -m “提交消息”

mg%2Fimage-20220105151758530.png&pos_id=img-L1P0fG6N-1706540292676)

提交消息:建议小组统一 一个格式 (具体格式都可以)

注意:commit的时候已经产生了版本信息,4492a54是版本号,版本号是唯一,当前仓库使用前7位就够了

push 本地仓库推送远程仓库

领先于远程仓库

git push

第一次push的时候需要输入码云的用户名和密码,输入git push时会弹出对话框

pull 拉取变化

落后于远程仓库

git pull

协作开发

加入仓库

加入到仓库中就可以push了

如果你的仓库是私有的,也能够看到你这个仓库

处理冲突

先提交的不处理冲突

后提交的处理冲突

开发习惯:晚上走之前建议提交一下(提交的时候保证你的程序能够编译

log 查看本地仓库日志

git log

过程1

结合上面的流程图看

过程2

repo1先执行了push

!

过程3

repo2执行pull

发现产生冲突了

过程4

修改冲突,并且重新提交

aster%2Fimg%2Fimage-20220106102329470.png&pos_id=img-7JwqTr8x-1706540292680)

过程5

repo2执行提交,提交最早想提交的部分和处理冲突的部分

!

过程6

repo1执行pull

没有冲突

Auto Merge

自动合并会让你提供合并信息(啥都不写都行) → 弹出vim编辑器

退出vim编辑器

  1. esc
  2. 冒号 wq
  3. 回车

忽略管理

你在工作产生了新的内容(变化 → 新增),git就会追踪这个变化

untracked files 还没有追踪

这个文件产生的变化我们不想给提交上去,我们可以做忽略管理

.gitignore → 要放在工作区的根目录

格式

文件名 单个文件

文件夹 某个文件夹下的文件

文件夹/

*.类型 某个类型的文件

注意事项:当前版本已经管理的文件,不能做忽略管理;只有去除掉才可以忽略管理(commit)

可以忽略自己(.gitignore),但是不建议大家忽略自己

newfile.txt 忽略单个文件

directory 忽略目录

runlist.txt

*.class 忽略了class文件

后悔药

![外

checkout 工作区里内容的撤销

git checkout 文件名

撤销完之后,内容还能找回吗? 不能 → 谨慎操作

reset 暂存区撤回到工作区

git reset

刚刚在工作区中新增了“松哥牛皮”

提交到暂存区之后,又使用reset给撤回到工作区,“松哥牛皮”还在不在 → 在,变化仍然存在

reset --hard 本地仓库的版本回退

git reset --hard 版本号

版本号可以写前七位,也可以写完整的

注意回退的是本地仓库,指回退当前的本地仓库,对远程仓库和其他本地仓库没有影响

!

如果想要回到最新的状态

可以使用pull命令

分支branch

git branch -a 查看分支

括号里的蓝色文字:指的是当前分支名,也意味着你处于工作区中

创建分支

创建远程仓库的分支

创建本地仓库的分支

起点是当前分支

git checkout -b 分支名 创建分支并切换到这个分支上

git checkout 分支名 创建分支并切换到这个分支上;切换分支

建立本地仓库的分支和远程仓库分支之间的联系

设置分支之间的联系

执行一次完整的提交

分支的合并

比如我们现在要将dev分支上的变化提交到master分支上 → 在master上合并dev

切换到master分支上

分支合并 git merge dev

推送远程 git push

如果要将分支A里的合并到分支B里 → 在B上合并A

1706540292682)]

设置分支之间的联系

[外链图片转存中…(img-1Klpl4tK-1706540292683)]

执行一次完整的提交

[外链图片转存中…(img-tjV0FsNm-1706540292683)]

[外链图片转存中…(img-9ZANon49-1706540292683)]

分支的合并

比如我们现在要将dev分支上的变化提交到master分支上 → 在master上合并dev

切换到master分支上

分支合并 git merge dev

推送远程 git push

[外链图片转存中…(img-pw2LMxaQ-1706540292683)]

如果要将分支A里的合并到分支B里 → 在B上合并A

目录
相关文章
|
Java 开发工具 git
|
29天前
|
缓存 数据可视化 算法
GIt详解
GIt详解
|
6月前
|
开发工具 git UED
git技巧
【4月更文挑战第17天】git技巧
38 2
|
6月前
|
XML Java 开发工具
Git简单了解
Git是一个版本控制系统,用于跟踪和管理软件开发项目中的代码改动。它可以记录代码的历史修改,支持多人协作开发,提供了分支管理等功能。通过Git,开发者可以方便地回退到代码的早期版本,合并代码的改动,以及与其他开发者共享代码。Git已经成为大多数软件开发团队的标准工具之一。
56 3
 Git简单了解
|
网络安全 开发工具 数据安全/隐私保护
今天给大家讲一讲git
今天给大家讲一讲git
114 0
|
存储 Linux 开发工具
git相关总结大全
git相关总结大全
|
存储 监控 JavaScript
Git 详解
Git 详解
123 0
|
开发工具 git 索引
初步认识git
你好看官,里面请!今天笔者讲的是初步认识git。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
97 2
初步认识git
|
开发工具 git
git简单总结
git简单总结
|
关系型数据库 MySQL 应用服务中间件
Git相关知识
Git相关知识
193 0