新手快速使用gitee管理代码-爱代码爱编程
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;