基本操作:vscode-git使用和命令
-
Git简介
GIt /git/ 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到很大的项目版本管理;
通俗的说,解决的问题是: 正常开发,一个团队需要很多人来共同开发一个项目,那么就涉及到代码的合并;比如两个人,同时更改了一处代码,如何进行合并;以及新加入的同事,如何下载代码进行继续开发;
-
GIt的工作流;
Git分为3个部分,远程仓库(remote),本地仓库(repository),工作区(workspace);
远程仓库存放的就是最终代码,本地仓库(repository)存放是本地提交的代码,工作区(workspace)才是存放直接进行编辑的代码;
正常的工作流,当你新加入一家公司继续开发;那么我们需要先从 远程仓库进行 clone 代码到 repository,然后进行 检出(check out)到workspace,然后在 workspace进行编写代码;如进行添加 add 到索引,然后需要 commit 提交到 本地仓库; 最后需要 push到远程仓库;
每天工作开始,都需要pull 代码;是从远程仓库,把别人已经修改的代码,下载代码到工作区;
安装Git,
GitHub
GitHub,用于代码管理,可以创建远程仓库,
网页打开GitHub,登录账号,并创建 repository; 记录下地址,用于之后笔记本中的Git来访问并clone代码;
Git操作
1、clone到本地
安装完Git后,邮件出现 Git Bash Here,出现Git的命令行;
配置用户名: 12593@DESKTOP-URQA38F MINGW64 ~ $ git config --global user.name 'LeiGongXXX' 配置邮箱: 12593@DESKTOP-URQA38F MINGW64 ~ $ git config --global user.email 'XXX57@qq.com' clone代码 12593@DESKTOP-URQA38F MINGW64 ~ $ cd "D:\01_VSCode Script" 12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script $git clone 'https://github.com/LeiGongXXX/C_Script.git' Cloning into 'C_Script'... warning: You appear to have cloned an empty repository. 12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script $ //因为现在远程仓库中是空的,所以提示为 “empty repository”
现在D:\01_VSCode Script目录下,就有了之前在GitHub中创建的repository了;
我们通过VSCode打开这个文件夹即可;
vscode编写脚本后,需要上传;
2、add
进入到对于的repository,会有提示 "master"
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master)
$ pwd
/d/01_VSCode Script/C_Script
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master)
$ git add 11求两数之和.c
3、commint
一定要加参数 -m,用于提交描述信息;
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git commit -m 'add 11求两数之和' [master (root-commit) 10486ce] add 11求两数之和 1 file changed, 17 insertions(+) create mode 100644 "11\346\261\202\344\270\244\346\225\260\344\271\213\345\222\214.c"
4、push到 github
但是 8月13号之后必须用ssh keys作为验证的token; 使用账号密码没法push了;
你原先的密码凭证从2021年8月13日开始就不能用了,必须使用个人访问令牌(personal access token),就是把你的密码替换成token!
设置公钥:
选择权限,并生成令牌:
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git push Logon failed, use ctrl+c to cancel basic credential prompt. Username for 'https://github.com': XXX7@qq.com Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 558 bytes | 558.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/LeiGong2019/C_Script.git * [new branch] master -> master //提示到master分支上了;
第一次弹框,输入邮箱和key没成功,第二次在git命令行输入邮箱和key成功了;
成功后,在github上就能看到脚本了;
一次性提交该目录下所有代码;
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ pwd /d/01_VSCode Script/C_Script 12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git commit -m 'c' [master 22220f2] c 12 files changed, 293 insertions(+) create mode 100644 "12\346\261\2022\344\270\252\346\225\260\344\270\255\350\276\203\345\244\247\350\200\205.c" create mode 100644 "13\346\257\224\350\276\2033\344\270\252\346\225\260\344\270\255\350\276\203\345\244\247\350\200\205.c" create mode 100644 "14\350\276\223\345\205\245very good.c" create mode 100644 "21\346\261\2025!.c" create mode 100644 "22A\357\274\214B\344\272\222\346\215\242\345\206\205\345\256\271.c" create mode 100644 "23\344\276\235\346\254\241\350\276\223\345\205\24510\344\270\252\346\225\260\357\274\214\350\276\223\345\207\272\350\276\203\345\244\247\350\200\205.c" create mode 100644 "30\344\273\213\347\273\215" create mode 100644 "41\345\276\252\347\216\257 \345\210\244\346\226\255200\344\273\245\345\206\205\347\232\204\347\264\240\346\225\260.c" create mode 100644 "42 \345\276\252\347\216\257 \345\210\244\346\226\255\346\237\220\344\270\200\345\271\264\346\230\257\345\220\246\344\270\272\351\227\260\345\271\264.c" create mode 100644 "43 \345\276\252\347\216\257 \346\260\224\346\263\241\346\263\225\346\257\224\350\276\203\345\244\232\344\270\252\346\225\260\345\244\247\345\260\217.c" create mode 100644 "51 \351\200\222\345\275\222 \346\261\211\350\257\272\345\241\224\351\227\256\351\242\230.c" create mode 100644 "52 \351\200\222\345\275\222 \344\270\252\344\272\272\347\220\206\350\247\243hanoi_personal.c" 12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git push Enumerating objects: 15, done. Counting objects: 100% (15/15), done. Delta compression using up to 4 threads Compressing objects: 100% (14/14), done. Writing objects: 100% (14/14), 4.23 KiB | 867.00 KiB/s, done. Total 14 (delta 0), reused 0 (delta 0) To https://github.com/LeiGongXXX/C_Script.git 10486ce..22220f2 master -> master
获取代码;
1、pull
2、checkout
1、pull;
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git pull remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/LeiGongXXX/C_Script 22220f2..bb4a0a8 master -> origin/master Updating 22220f2..bb4a0a8 Fast-forward "11\346\261\202\344\270\244\346\225\260\344\271\213\345\222\214.c" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
2、checkout
检出,是用来检出分支;
另外,比如本地误删除文件,可以使用git checkout XX.c 找回;
12593@DESKTOP-URQA38F MINGW64 /d/01_VSCode Script/C_Script (master) $ git checkout 11求两数之和.c