代码编织梦想

1、新手的认识和需求

初识git,对于他的认识,就是用来同步代码,方便团队或者自己在多台设备上编辑代码时,保证代码是最新版本。满足以下场景的需求:
1、在A电脑上编辑代码,可以上传到服务器,不用U盘拷贝,在B电脑上使用的时候,直接拉取最新版本。
2、团队协助的时候,也可以使用这个功能,不用代码发来发去。

听说GIT是目前世界上最先进的分布式版本控制系统,这个对于小白来说,没什么直观的认识。

2、操作步骤

2.1 git 安装

打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本
官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/
安装:一直下一步安装就可。

2.2 git环境配置

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中,只需要做一次设置就可:
使用命令:

git config --global user.name "charming0815"  #名称
git config --global user.email 408414801@qq.com   #邮箱

在任意文件夹或者桌面,右键均可以方便的调用git命令,选择Bash 在这里插入图片描述
在命令行中输入’git config --global --list’ 回车出现以下代码,就可查看配置到自己配置的信息(XX)

Administrator@homework MINGW64 ~/Desktop (master)
$ git config --global --list
user.name=charming0815
user.email=408414801@qq.com

2.3 认识工作流程

一般工作流程如下:

1.克隆 Git 资源作为工作目录。
2.在克隆的资源上添加或修改文件,别人修改的也可更新。
3.将需要进行版本管理的文件放入暂存区域。
4.将暂存区域的文件提交到git仓库。
5.推送至远程服务器

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

2.4 选择一个远程仓库,创建项目

此处我们选择国内的gitee,GitHub 或者微信的git自行研究探讨。

2.4.1 生成SSH公钥

生成本机的公钥,在对应的系统中绑定,实现免密码登录。

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

一路空格下去就可,

2.4.2 注册码云(Gitee)并设置SSH公钥

在gitee官网上,注册账号,设置本机绑定SSH公钥,实现免密码登录!(码云是远程仓库,我们是平时工作在本地仓库!)

在本地电脑对应的用户文件夹下,可以看到这些文件,用记事本打开选中文件后缀是.pub的文件。
在这里插入图片描述

在这里插入图片描述
选中复制全部信息到gitee的公钥填写框中,确定,输入账号密码就可。
在这里插入图片描述
若修改了gitee的账号和密码:那么ssh就不能正常使用了。
进行pull操作就会提示账号或者密码不正确:

$ git pull
remote: [session-924d1a9f] charming0815: Incorrect username or password (access token)
fatal: Authentication failed for 'https://gitee.com/charming0815/gitstudy.git/'

重复SSH设置操作,执行git pull命令,要求重输入账号和密码,验证成功后,就可以正确执行了。:
在这里插入图片描述

敦敏@charming MINGW32 /d/04-培训视频/05-git/gitstudy (master)
$ git pull
remote: [session-1e4ca4ad] charming0815: Incorrect username or password (access token)
fatal: Authentication failed for 'https://gitee.com/charming0815/gitstudy.git/'

敦敏@charming MINGW32 /d/04-培训视频/05-git/gitstudy (master)
$ git pull
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 27 (delta 12), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (27/27), 5.08 KiB | 88.00 KiB/s, done.
From https://gitee.com/charming0815/gitstudy
   3a21b75..ed2e7b3  master     -> origin/master
Updating 3a21b75..ed2e7b3
Fast-forward
 test                                               |  3 ++-
 userinfo.txt                                       |  7 ++++++
 ...75\277\347\224\250\346\226\271\346\263\225.txt" | 27 ++++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 userinfo.txt
 create mode 100644 "\344\275\277\347\224\250\346\226\271\346\263\225.txt"

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

在这里插入图片描述

2.4.3 克隆远程项目

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

在这里插入图片描述

(2) 克隆文件夹

在本地电脑上创建一个新的文件夹:使用命令克隆远程项目

$ git clone https://gitee.com/charming0815/gitstudy.git
Cloning into 'gitstudy'...
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 3), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (3/3), done.

最终的文件夹内容和远程的内容是一直的,使用clone方法操作,本地直接指向了远程,不用其他的设置,在后面就可以直接push了,不用再输入link之类的了。

clone完成后的结果如下:在这里插入图片描述

2.4.4 修改本地文件,push至远程

(1) 在文件夹中新建一个文件:“使用方法.txt”

在这里插入图片描述

查询,增加文件后的git状态:

Administrator@homework MINGW64 ~/Desktop/2023-5-28 git/gitstudy (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        userinfo.txt
        "\344\275\277\347\224\250\346\226\271\346\263\225.txt" # 文件名为中文,才这样显示?

nothing added to commit but untracked files present (use "git add" to track)

(2) 执行git add命令将代码添加到仓库 git add .

执行后,再查看status:

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   userinfo.txt
        new file:   "\344\275\277\347\224\250\346\226\271\346\263\225.txt"

(3) 执行git commit命令将代码提交到仓库

执行git commit命令将代码提交到仓库,代码为:

git commit -m “一些描述”,描述不要遗漏,否则会报错。

$ git commit -m"0528"
[master a3e6780] 0528
 2 files changed, 19 insertions(+)
 create mode 100644 userinfo.txt
 create mode 100644 "\344\275\277\347\224\250\346\226\271\346\263\225.txt"

(4) 代码在本地仓库了,提交到远程仓库

执行 git commit命令 后,代码在本地仓库了。需要通过git push 命令提交到远程仓库。

直接输入 git push 命令

$ git push
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 961 bytes | 961.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/charming0815/gitstudy.git
   3a21b75..a3e6780  master -> master

可以看到远程和本地的数据是一样的。
在这里插入图片描述

代码还是出现了点问题,正确的做法应该是:

$ git push origin master # 推送到远程仓库。

(5) 拉取最新的代码

直接使用 git pull 。

$ git pull
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 1.69 KiB | 133.00 KiB/s, done.
From https://gitee.com/charming0815/gitstudy
   eefdb4c..50e5ae9  master     -> origin/master
Auto-merging 使用方法.txt
CONFLICT (content): Merge conflict in 使用方法.txt
Automatic merge failed; fix conflicts and then commit the result.

Administrator@homework MINGW64 ~/Desktop/2023-5-28 git/gitstudy (master|MERGING)
$

在码云上编辑的中文会出现乱码?还是编码格式的问题吗?

在这里插入图片描述

实际的练习过程中,还是会有很多的疑问,如:(一台电脑任何时候都只有一把吗SSH吗?修改了gitee的密码后,SSH还能用吗?本地修改了,远程也修改了,如何进行Push和Pull操作呢…),很多的疑问,熟能生巧,更多的学习内容参见高手专业教程。

大神教程:https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ
菜鸟教程:https://www.runoob.com/git/git-tutorial.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/charmingmm815/article/details/130915011