代码托管/版本控制工具:Git的安装和使用

这篇具有很好参考价值的文章主要介绍了代码托管/版本控制工具:Git的安装和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


友情提醒:

第一章、Git的下载和安装

1.1)登录GitHub官网注册账户密码

登录官网:https://github.com/
注册账号密码,如果发现注册页面打不开,继续往下看

代码托管/版本控制工具:Git的安装和使用

国内访问github很卡解决方式

看这个
下载加速器加速访问GItHub

1.2)注册完账号密码后下载本地git

登录https://git-scm.com/download/win (根据自己电脑的位数和系统下载git)
代码托管/版本控制工具:Git的安装和使用

1.3)安装git

双击Git-2.9.0-64-bit.exe文件安装git,点击next
代码托管/版本控制工具:Git的安装和使用

选择安装目录,点击next

代码托管/版本控制工具:Git的安装和使用

勾选如下的组件,点击next

代码托管/版本控制工具:Git的安装和使用
继续next
代码托管/版本控制工具:Git的安装和使用

一直next到这里的时候,选择使用命令行环境

代码托管/版本控制工具:Git的安装和使用

接下来不管出现啥都点击next,直到出现Install后点击安装

代码托管/版本控制工具:Git的安装和使用
安装成功

代码托管/版本控制工具:Git的安装和使用

第二章、Git基本配置

2.1)配置git用户和邮箱

鼠标右键点击电脑桌面空白处,选择Git Bash Here

代码托管/版本控制工具:Git的安装和使用
①出现Git的命令行窗口,在Git命令行配置用户名和登录邮箱
1、设置用户名:git config --global user.name '在github上注册的用户名';

代码托管/版本控制工具:Git的安装和使用
2、设置用户邮箱:git config --global user.email '注册时的邮箱';

代码托管/版本控制工具:Git的安装和使用
3、配置后,我们用git config --list查看是否配置好
代码托管/版本控制工具:Git的安装和使用

2.2)生成密钥文件

②查看 c盘->用户->正在使用的用户名->.ssh下是否有id_rsa文件,没有就用下面的命令生成rsa密钥

ssh-keygen -t rsa -C "注册的邮箱@qq.com"

代码托管/版本控制工具:Git的安装和使用
输入后点击enter回车,回车,回车

代码托管/版本控制工具:Git的安装和使用
生成后去 c盘->用户->正在使用的用户名->.ssh中查看生成的公钥和私钥
代码托管/版本控制工具:Git的安装和使用

2.3)登录git官网配置密钥

①打开.ssh文件夹下的id-rsa.pub文件的内容,全部复制。

②登录你的git服务器点击头像选择settings—》寻找ssh and GPG keys—》new ssh.key—》将id-rsa.pub文件的内容全部粘贴后点击add ssh key
代码托管/版本控制工具:Git的安装和使用

第三章、基本使用

3.1)创建远程仓库,初始化本地项目

①第一次使用Git上传代码需要登录你的git账户创建远程仓库,登录后点击上方导航栏的‘+’按钮,选择 New repository
代码托管/版本控制工具:Git的安装和使用

②出现以下页面,填写repository也就是仓库的名称,点击下方创建createrepository
代码托管/版本控制工具:Git的安装和使用

③创建成功后,在首页会出现你的repository仓库,选择一个进入如:baomingshu/ssm
代码托管/版本控制工具:Git的安装和使用

④进入后出现如下页面点击右侧code。
a.是你创建的repository仓库的http地址
b.是你创建的repository仓库的ssh地址,将他们都复制保存
代码托管/版本控制工具:Git的安装和使用

⑤初始化本地项目,使用cd命令进入Java工程所在的本地目录 e:/workspace/heima_ssm/
进入后在当前目录下输入git init 进行初始化项目(初始化创建一个新的git仓库)
这将在当前目录下创建一个名为.git的子目录,其中包含了初始化的Git仓库。
可以输入ls查看文件夹下有什么

3.2)gitignore使用

①如果没有.gitignore文件使用下面命令创建

touch .gitignore

②使用命令设置gitignore:
.gitignore可以将文件将不需要提交的与我们代码无关的文件比如:target文件,.settings文件,.project文件.class文件不提交到远程仓库。输入命令Vi .gitignore打开
代码托管/版本控制工具:Git的安装和使用
③点击i键后,开始输入以下不需要提交的文件名称:

heima_ssm_web/target/*
.settings
.classpath
.project

④输入完成后点击esc退出,再输入冒号,才能输入命令wq,回车自动保存后退出。
⑤.gitignore语法介绍
1、.gitignore文件中匹配规则:

#表示注释
*表示匹配任意多个字符
?表示匹配任何一个字符
!表示取反取反
[abc]表示匹配方括号当中的任何一个字符
[0-9]表示匹配0-9当中任意一个数字
两个*号表示任何中间目录,比如src/**/build,可以匹配到src/test/build,也可以匹配到src/current/build。

2、取反规则:指定可以不遵守忽略条件的文件名,就算pom.xml文件在被忽略的文件路径下,也不会被忽略。

!pom.xml

3、相对路径写法,过滤掉ssm_web/target/*文件夹下的所有内容:

ssm_web/target/*

4、忽略,过滤掉.text类型的文件:

*.text

5、忽略掉target路径下的所有java文件:

target/*.java

3.3)提交代码到远程库

①第一次提交代码到远程库
第一次提交代码时需要先使用git remote add origin +刚刚保存的git 的ssh项目地址如git@github.com:baomingshu/ssm.git设置,执行成功以后本地仓库的项目便已经同远端仓库的项目保持同步
代码托管/版本控制工具:Git的安装和使用

②输入git add * 将文件提交到git暂存仓库
代码托管/版本控制工具:Git的安装和使用

③输入git commit –m ‘init ssm project’提交到本地仓库,其中单引号中的内容是自己定义的备注,
相当于你备注一下这次提交了什么
代码托管/版本控制工具:Git的安装和使用

Git log查看提交记录
代码托管/版本控制工具:Git的安装和使用
⑤提交到本地后,使用Git push origin master将提交到远程仓库
代码托管/版本控制工具:Git的安装和使用
Git status 查看状态,成功后进入git hub出现以下页面
代码托管/版本控制工具:Git的安装和使用

3.4)代码下载到本地

①使用cd e:/workspace/heima_ssm/命令进入项目位置
使用Git clone +刚刚保存的git 的ssh项目地址如git@github.com:bxxx/ssm.git 或者如图复制
代码托管/版本控制工具:Git的安装和使用
如图就可以将git hub 中的代码下载到本地项目中。
代码托管/版本控制工具:Git的安装和使用

Git pull origin master 下载远程库中与本地有区别的代码
如果失败了 不能下载代码,是因为本地仓库跟远端仓库关联不成功引起的,执行下面的命令设置一下

git branch --set-upstream master origin/master

第四章、git远程仓库与本地仓库合并

4.1)分支的创建和切换

克隆下载一个现有的 Git 仓库到本地

git clone ssh仓库地址

在本地建立我自己的分支(取名develop)才能提交到远程仓库上develop的分支

#第一种方式:创建develop分支
git checkout -b  develop
#第二种方式:创建develop分支
git branch develop

使用下面这个命令来查看当前分支。

git branch

如图:
代码托管/版本控制工具:Git的安装和使用
使用下面这个命令来切换分支。

 git checkout develop

如图:
代码托管/版本控制工具:Git的安装和使用

4.2)有了改动后的提交

当我本地有了改动,用命令查看改动

git diff 文件名<file>

如图,绿色是改动新增,红色是删除的地方
代码托管/版本控制工具:Git的安装和使用

把有改动的文件(modified状态)添加到暂存区,准备进行提交。

git add 文件名<file>

#再使用status命令查看是否添加成功(变绿)
git status

如图:
代码托管/版本控制工具:Git的安装和使用
如果使用add的时候添加错了,可以使用下面这个操作把文件从add到暂存区的文件退下来

git restore --staged 文件名<file>

#再使用status命令查看是否退回成功(变红)
git status

如图;
代码托管/版本控制工具:Git的安装和使用

确认无误后,提交暂存区的文件到本地仓库,-m’xxx’是指添加提交信息。

git commit -m 'bms dev first commit'

如图
代码托管/版本控制工具:Git的安装和使用

查看日志信息是否commit提交成功:包括提交者、提交时间、提交信息等。

git log

如图:
代码托管/版本控制工具:Git的安装和使用

4.3)推送到不同的远程仓库分支

将本地仓库的改动推送到远程仓库develop分支。这里的develop相当于在远程仓库创建了develop分支,如果分支已经存在就不会创建了(有可能是和别人共用分支)


#选择推送到远程仓库的develop分支
git push origin develop

#选择推送到远程仓库的master分支
git push origin master

在github上,如果没有代码冲突,就将自己的分支merge(合并)到共用的分支

在github上直接用UI可以合并

4.4)从远程仓库的分支拉取最新的代码

从远程仓库的某个分支拉取最新的代码,并合并到本地仓库。

#从master分支拉取
git pull origin master
#从develop分支拉取
git pull origin develop

第五章、本地不同分支的合并

5.1)本地分支的切换测试

5.1.1)切换之前的master分支下文件内容

执行命令 切换到master分支

git checkout master

此时的master分支下的文件内容如下:
代码托管/版本控制工具:Git的安装和使用

5.1.2)切换到develop分支后修改文件

执行命令 切换到develop分支

git checkout develop

对文件内容进行以下修改:修改后内容如下:
代码托管/版本控制工具:Git的安装和使用

5.1.3)切回master分支出现报错:

报错如下: error: Your local changes to the following files would be overwritten by checkout: fileMergeTest.txt Please commit your changes or stash them before you switch branches. Aborting
翻译成中文:

您对以下文件的本地更改将被签出覆盖:
fileMergeTest.txt
请在切换分支之前需要提交(commit),或者缓存(stash )

5.2)解决方式

5.2.1)方式1:commit提交修改

先在develop分支修改本地文件内容,如图:
代码托管/版本控制工具:Git的安装和使用
切换到master分支时提示:
代码托管/版本控制工具:Git的安装和使用
使用commit,提交保存到本地仓库再切换分支:

git add filename
git commit -m "message"

如图执行:
代码托管/版本控制工具:Git的安装和使用
提交后,本地文件就被修改了,这时候切换成功了
代码托管/版本控制工具:Git的安装和使用
git checkout develop切换回develop分支会发现,文件内容是修改保存的。
代码托管/版本控制工具:Git的安装和使用

想要还原这次commit提交的话可以:
使用git log 查看提交的历史记录 找到,
代码托管/版本控制工具:Git的安装和使用

再使用下面命令恢复本次提交的修改

git revert <commit-id>
#也就是
git revert fceb33de10e82ed956fe68aa25c0c567bfdace47

出现下面的界面:Git会打开一个文本编辑器,让您输入撤销提交的相关信息。可以按i然后直接按下Esc键,输入:wq,然后按下Enter键。默认使用当前信息。
代码托管/版本控制工具:Git的安装和使用

5.2.2)方式2:stash

先在本地develop分支下修改文件内容
代码托管/版本控制工具:Git的安装和使用
切换到master分支时提示:
代码托管/版本控制工具:Git的安装和使用
可以使用git stash #封存修改切换到master以后再切回来,
代码托管/版本控制工具:Git的安装和使用
发现文件内容怎么少了一段
代码托管/版本控制工具:Git的安装和使用
原来是要把封存的修改用git stash pop命令取出来

git stash pop #把封存的还原

封存的修改就还原了
代码托管/版本控制工具:Git的安装和使用

5.2.3)方式3;放弃修改

不推荐这样做,改完了又放弃,这不是傻嘛。

git clean -n         //这个是清除文件预览
git clean -f fileName        //强制清除文件

执行后效果如下:

86130@Bms MINGW64 /f/Git/mergetest (develop)
git clean -n
Would rempve fileMergeTest.txt.bak
86130@Bms MINGW64 /f/Git/mergetest (develop)
git clean -f fileMergeTest.txt.bak
Removing fileMergeTest.txt.bak

5.3)将develop分支合并到master分支

5.3.1)查看develop分支下的内容

执行命令 切换到develop分支

git checkout develop

发现内容如下:
代码托管/版本控制工具:Git的安装和使用

5.3.2)查看master分支下的内容

执行命令 切换到master分支

git checkout master

master分支下的文件内容如下:
代码托管/版本控制工具:Git的安装和使用

5.3.3)合并develop分支到master分支

执行下面的命令先切到master

git checkout master

合并develop分支到当前的master分支

git merge develop

这是在master分支下查看文件内容,发现已经和develop分支同步了
代码托管/版本控制工具:Git的安装和使用

第六章、合并时出现代码冲突

6.1)Git代码冲突介绍

6.1.1)什么是Git代码冲突

①git merge命令介绍

git merge 用于本地分支的合并。将一个本地分支的更改合并到另一个本地分支时,你会使用git merge命令。
git merge命令用于将一个分支的更改合并到另一个分支。它会将两个分支的更改整合在一起,保留详细的合并信息,并成为一个新的提交。

例如,假设有一个 develop分支和一个 master 分支,您在 develop分支上开发了新的功能,然后想要将这些更改合并到 master 分支中。您可以切换到 master 分支,然后运行 git merge develop命令来实现这一目的。

②代码冲突原因

指在合并(merge)分支或拉取(pull)远程代码时,Git无法自动解决不同分支或版本之间的代码差异,从而导致代码冲突。这种冲突通常发生在同一文件的同一行或相邻行上,但内容不一致的情况下。当Git检测到这种情况时,会标记出冲突的部分,并要求开发人员手动解决这些冲突。通常需要开发人员手动编辑代码,选择保留和合并哪些代码,最终手动解决冲突并提交合并后的代码。

6.1.2)提示代码冲突的两种情况

①本地不同分支的文件有差异时:

在Git中,合并分支可以在本地进行,也可以在远程仓库进行。因为一般不会去远程仓库合并。我们这里只讨论本地分支合并。
使用git merge命令合并本地分支时,因为各种原因造成了不同分支的相同文件有差异合并时就会导致代码冲突。

场景1:合并本地分支
从本地master分支拉出了develop分支,在develop分支上开发,在这期间,各种原因,master分支发生了变化。等你想把develop分支合并到master分支,提示代码冲突。

②本地仓库和git远程仓库的文件有差异时:

pull命令自动将远程分支的更改合并到当前本地分支,
push命令自动将当前本地分支的更改合并到远程分支,
因此实际上这两个命令包含了合并(merge)操作。可能导致代码冲突。出现代码冲突一般都需要在本地手动解决,不可能push上去远程仓库那边,那边没有人会给你处理冲突,所以这里只讨论pull操作。

场景2:pull拉取代码
开发者A和开发者B都从远程仓库克隆了代码到本地。A开发者修改了一个代码文件后提交代码到git远程仓库成功,B开发者在本地修改了同一个代码文件的相同部分,这时本地仓库和git远程仓库的文件出现了差异,拉取会提示代码冲突。

6.1.3)解决合并时的代码冲突

①打开冲突文件,手动编辑以解决冲突:
查看冲突标记:在文件中查找冲突标记,通常是"<<<<<<<“,”=======",和 “>>>>>>>”, 这些标记将冲突的代码块分隔开来。

②解决冲突:
手动编辑文件,选择保留需要的代码,删除不需要的代码,并移除冲突标记,保存文件。

③添加文件并提交到远程仓库:
使用 “git add” 命令将解决冲突后的文件添加到暂存区。。运行 “git commit” 命令提交已解决冲突的文件。运行git push命令将修改后的代码推送到远程仓库。

6.2)远程与本地冲突实例

6.2.1)模拟冲突

开发者A修改了文件fileMergeTest.txt的第5行,然后将更改推送到远程仓库。如图:
代码托管/版本控制工具:Git的安装和使用
同时,开发者B在本地也修改了文件fileMergeTest.txt的第5行如图:
代码托管/版本控制工具:Git的安装和使用

开发者B尝试将远程仓库pull到本地。由于开发者A和开发者B修改了同一个文件的相同部分,开发者B在拉取时会遇到代码冲突。并提示自动合并失败,需要修复冲突,并提交最新修改后的版本
代码托管/版本控制工具:Git的安装和使用
开发者B在打开fileMergeTest.txt文件,会看到类似以下的标记:

<<<<<<< HEAD
// 开发者B的更改
=======
// 开发者A的更改
>>>>>>> 

如图:
代码托管/版本控制工具:Git的安装和使用

6.2.2)手动编辑文件,解决冲突

开发者B需要手动编辑fileMergeTest.txt文件,决定保留哪些更改,删除哪些更改,直到解决所有冲突。 我选择保留本地修改:
代码托管/版本控制工具:Git的安装和使用

解决冲突后,开发者B使用git add fileMergeTest.txt命令提交到暂存区,使用git commit命令提交更改,然后使用git push命令将更改推送到远程仓库。
代码托管/版本控制工具:Git的安装和使用
查看远程仓库,已经同步更新了
代码托管/版本控制工具:Git的安装和使用

6.2.3)如果本地修改量很大

先用git stash封存修改,再正常git pull了,git pull后,执行git stash pop将之前本地做的修改恢复到当前工作区。这个时候就会报代码冲突了,
打开冲突文件,手动编辑解决后,commit继续push

6.3)本地develop与本地master冲突实例

6.3.1)模拟冲突

master分支修改第五行:修改文件内容后执行命令

git add .
git commit -m 'messag'

代码托管/版本控制工具:Git的安装和使用
切换到develop分支,依然修改第五行:修改文件内容后执行命令

git add .
git commit -m 'messag'

代码托管/版本控制工具:Git的安装和使用
切回master分支,合并develop分支

git checkout master
git merge develop

提示合并失败,内容冲突
代码托管/版本控制工具:Git的安装和使用

6.3.2)解决冲突

打开文件,发现冲突位置
代码托管/版本控制工具:Git的安装和使用
手动编辑这个文件,解决冲突后提交
代码托管/版本控制工具:Git的安装和使用文章来源地址https://www.toymoban.com/news/detail-495805.html

到了这里,关于代码托管/版本控制工具:Git的安装和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 版本控制 Git工具的使用

    版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技术。 没有进行版本控制本身缺乏正确的流程管理,在软件

    2024年02月10日
    浏览(55)
  • 程序员必备之——代码托管工具 git

    目录 一、git的安装及本地配置 1.1、git介绍 1.2、git本地安装及配置 1.3、git远程仓库 二、git的命令及使用 2.1、基础命令 三、git的分支 3.1、常用命令 3.2、执行效果图 3.3、合并时有冲突该怎么办? 3.4、解决冲突 3.5、git分支图解 四、连接远程仓库 4.1、在gitee新建远程仓库 4.2、

    2024年02月08日
    浏览(54)
  • 2023 最新 Git 分布式版本控制系统介绍和下载安装使用教程

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 集中式和分布式的区别? 最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新的版本,然后开始

    2024年02月09日
    浏览(61)
  • 本地版本控制工具Git

    明确设计思路,精准定位问题,对于我们后期理解迭代工程有很大的帮助。 这就是我们常说的 40%设计,20%编写和剩下的40%时间进行调试优化 。 今天为大家带来的是 通过Git工具存储和对比具有阶段性成果的代码版本 。 Q1:代码调通了,但是不知道是哪部分导致问题的存在?

    2024年04月28日
    浏览(44)
  • Git:版本控制工具

    Git是分布式版本控制系统,同时是内容管理系统、工作管理系统等,与Linux命令完全兼容。 与集中式版本控制系统(比如SVN)不同,Git是分布式的,可以通过Git从服务器上把完整的Git仓库克隆到本地。 协同修改 数据备份 版本管理 权限控制 历史记录 将工作区的修改添加(

    2024年01月19日
    浏览(44)
  • Git版本控制工具

    版本控制(Version control),是维护工程蓝图的标准作法,能追踪工程蓝图从诞生⼀直到定案的过程。此外,版本控制也是⼀种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同⼀程序文件都得到同步透过文档控制,能记录任何工程项目内各个模块的改动历

    2024年02月20日
    浏览(32)
  • 版本控制工具Git常见用法

    Git 是一个非常强大和灵活的版本控制工具,提供了许多命令和功能来管理代码的版本、分支、合并等。以下是一些 Git 的详细用法: 配置相关命令: 设置用户名和邮箱: git config --global user.name \\\"Your Name\\\" git config --global user.email \\\"your.email@example.com\\\" 基本操作: 初始化一个新仓库

    2024年02月11日
    浏览(46)
  • Git分布式版本控制工具

    1.应用场景 备份 代码还原 协同开发 追溯问题代码的编写人和编写时间 2.Git安装与常用命令 ls/ll:查看当前目录 cat:查看文件内容 touch:创建文件 vi:vi编辑器,vi+文件名,(使用vi编辑器方便展示效果) 在vi编辑器中,按下键盘上的Esc键,确保你处于正常模式(Normal Mode)。

    2024年02月12日
    浏览(59)
  • 分布式版本控制工具——git

    ✅1主页::我的代码爱吃辣 📃2知识讲解:Linux——git ☂️3开发环境:Centos7 💬4前言:git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。  也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 目录

    2024年02月09日
    浏览(51)
  • Git 分布式版本控制工具

    Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。 在IDEA开发工具中可以集成Git(后面会讲解Git安装和集成过程): 集成后在IDEA中可以看到Git相关图标: 可以通过启动两个IDEA窗口模拟两个

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包