Git安装、配置、提交代码【学习记录】

前言

在之前的工作中,我主要使用 SVN 工具来上传和更新代码。最近加入了一个新项目,开始接触 Git 工具。由于是公司项目,环境已经配置好,按照文档就可以操作,因此我之前并没有实际使用过 Git。最近几天,我主要花时间研究如何从头开始使用 Git 工具。以下是我在学习和使用 Git 过程中遇到的问题以及解决过程的记录。

一、正常顺序

1. 安装 Git

Git 的官方网站下载并安装:https://git-scm.com/

2. 配置用户信息

配置 Git 的用户信息,用户名和邮箱。CMD命令行中执行以下命令:

git config --global user.name "Name"
git config --global user.email "Email@example.com"

Name替换成自己的用户名,将 Email@example.com替换成自己的邮箱地址。

3. 创建新的 Git 仓库

使用以下命令在项目目录中初始化一个新的 Git 仓库:

cd /path/to/your/project
git init

4. 将文件添加到暂存区

将要上传的文件添加到 Git 的暂存区中。使用以下命令将所有文件添加到暂存区:

git add .

或者,如果只想添加特定的文件,可以使用以下命令:

git add file1 file2 file3

5. 提交文件到本地仓库

提交添加到暂存区的文件到本地 Git 仓库中。执行以下命令:

git commit -m "message"

将引号内的内容替换为提交的注释信息。

6. 关联远程仓库

在上传代码之前,需要将本地仓库关联到远程仓库,在本地仓库中执行以下命令关联远程仓库:

git remote add origin <remote_repository_url>

<remote_repository_url> 替换为远程仓库的地址。

7. 推送代码到远程仓库

将本地仓库的代码推送(push)到远程仓库中。执行以下命令:

git push -u origin master

这条命令将本地的 master 分支推送到远程仓库的 master 分支上。如果是第一次推送,需要加上 -u 选项,以设置默认的推送分支。


PS:正常的步骤如上


二、问题解决

执行上述步骤时出现错误,从这开始记录问题的解决、

1.第一次报错
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/gyleo/blog_ssm.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这个错误提示表明远程仓库中存在本地仓库中没有的提交,可能是其他人在远程仓库中进行了修改或提交。

原因分析

先前曾上传过一次代码,但是由于初次使用上传代码的结构太过于臃肿,导致上传速度过慢。且部分已上传。

上述猜想分析为第一次分析,后经琢磨是本地仓库未同步远程仓库文件,且因为初次上传失败存在缓存

持续步骤

为了解决这个问题,你可以执行以下步骤:

  1. 首先,执行 git pull 命令,将远程仓库的更新拉取到本地:
git pull origin master

将远程仓库的变更合并到你的本地仓库中。


2.第二次报错

前提

执行了git pull origin master之后

remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 1.81 KiB | 132.00 KiB/s, done.
From https://gitee.com/gyleo/blog_ssm
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
fatal: refusing to merge unrelated histories

这个错误通常是因为本地仓库和远程仓库的历史不同步导致的。

原因分析

猜想本地仓库和远程仓库未合并

持续步骤

  1. 不需要远程仓库的提交,并且丢弃远程仓库的历史,执行以下命令来清除本地的历史记录:
git fetch --all
git reset --hard origin/master

这会将本地仓库的 HEAD 指向远程仓库的 master 分支,丢弃本地的历史记录。

  1. 使用 git addgit commit 命令来提交代码:
git add .
git commit -m "message"
  1. 使用 git push 命令将本地的提交推送到远程仓库:
git push origin master
  1. git status查看仓库状态
  2. 登录平台查看代码是否上传成功(远程仓库)

3.第三次问题

平台查看,代码未上传成功,只上传了个别文件。如图

在这里插入图片描述
原因分析

之前代码上传存在垃圾,本次代码上传未执行成功,或者是未覆盖成功,导致后面上传的是之前的代码文件(说代码文件都不准确,.idea是IDEA IDE的配置文件)

持续步骤

  1. git add .添加到本地缓存区 和 git commit 提交到本地仓库。
git add .
git commit -m "message"
  1. git push提交到远程仓库。
git push origin master

三、最终结果

在这里插入图片描述

按照上述步骤,最终提交代码成功,但是仍然存在问题,上传时间过长,文件太过冗余,上传太过吃力。

原因分析

在这里插入图片描述
如图,代码上传时间预计花费5小时。上传的代码包括IDEA配置文件src项目主题文件target编译文件POM文件。这其中idea配置文件编译文件完全不需要,尤其是编译文件,编译文件不仅是编译了项目文件,还编译了资源文件,还有项目实际所需要的依赖jar包,是造成时间过长的主要原因。

四、再次上传

由于是第一次使用Git,难免是有许多问题,总结以上所述问题之后,再上传一次代码。同样是上传之前的项目。

1.配置.gitignore

为了避免上传多余的文件,经过网上查阅资料,可以在上传的文件夹中编写.gitignore文件来指定 Git 忽略哪些文件或目录的配置文件。在项目中,有些文件或目录不需要被纳入版本控制,例如编译生成的文件、临时文件、日志文件等,这时就可以将它们列在 .gitignore 文件中,告诉 Git 忽略这些文件的变更。一般情况下,.gitignore 文件应该放在项目的根目录下,Git 在进行版本控制时会自动识别并忽略指定的文件和目录。

现在再次上传的项目是用IDEA和WebStorm创建的项目结构,已经自动生成.gitignore文件,所以我自己未编写。贴一下已有的.gitignore文件。
在这里插入图片描述

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

准备工作(学习)完成之后,按照之前的命令上传代码。

cd 仓库文件夹(要上传项目的所在文件夹)
git init (设置本地仓库,仓库文件夹初始化git环境)
touch README.md(可选,设置readme说明文件)
git add .(将当前文件夹内的所有文件添加到缓存区)
git commit -m "first commit"(提交项目至本地仓库)
git remote add origin https://gitee.com/gyleo/ynx_wechat_app.git(本地仓库与项目仓库进行连接)
git push -u origin "master"(提交代码)

2.上传成功

在这里插入图片描述

如上图所示文件数量减少,上传时间缩短。


结束

以上为全部内容,学习使人进步,如有不对请指出!!谢谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值