Git快速上手

1. 介绍

Git是最流行的开源版本控制系统,大多数项目都用它来追踪文本文件(代码)的变化。而Github是一个国外的基于Git的代码社交平台,可用于分享代码和团队合作。类似产品国内的有Gitee等。

想必计算机/电子等相关专业的同学或者爱好者都有过从Github下载代码的经历吧。当你想要下载别人代码库中的代码时,使用git clone获取的会比下载zip多一个.git文件,即clone的代码包含版本历史,处于版本管理下,而下载zip方式只会下载当前版本的源代码而不处于版本管理下。因此使用git clone很大的好处是可以方便的通过git pull来更新你本地的代码为远程的最新版本。

如果你还想在别人代码的基础上进行修改和版本控制,最终再发布到类似于Github这样的平台上,那么你需要先点击 fork,然后再使用自己代码仓库的链接 git clone到本地。

img

要在自己的电脑使用Git,你至少需要点这里完成安装:https://git-scm.com/downloads
然后打开git bash,配置git的用户名和邮箱,这个配置非常重要,它会包含在你的每个提交中,以标识在多人合作同一个项目时某个更改是你做的。

1
2
git config --global user.email "konglyv@163.com"
git config --global user.name "Lingyu Kong"

在git clone时,github通常可以选https链接和ssh链接,使用https链接可能会弹窗,需要你输入用户名和密码,使用ssh则不需要,如果想用ssh链接,需要配置ssh,将本机的公钥(例如在C:/用户/用户名/.ssh/id_rsa.pub)粘贴到你的github 设置->ssh/GPG keys中。如果本机没有公钥密钥对,则需要如下命令生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. Git常用命令

2.1 新手——如果你需要学习命令

  • 游戏版:进入这个游戏,通过游戏理解Git保存的是什么,理解分支的含义(右下角的问号标志可以查看答案)

    并完成「主要」部分的「基础篇」学习:git commitgit branchgit mergegit rebase命令

    完成「杂项」的git taggit describe命令

    完成「远程」部分的「Push & Pull —— Git 远程仓库!」,包括git clonegit fetchgit pullgit push命令及模拟练习。

    这些是git中最基本最常用的命令,是使用git的基础,游戏中的其余命令你可能暂时用不到或者我认为它写的不够实用,你可以选择性学习。

  • 文字版https://guides.github.com/introduction/git-handbook/

2.2 老手——如果你只想查看命令

一份简洁的中文Git备忘单:https://training.github.com/downloads/zh_CN/github-git-cheat-sheet/

我记录的一些命令小抄(持续更新中):

  • git clone -b <branch_name> <url>: 克隆仓库指定分支,可缺省,默认克隆main或master分支
  • git add .: 添加所有修改
  • git commit -m 'xxxx': 提交修改
  • git status: 查看git状态
  • git branch # 查看本地分支
  • git branch -r # 查看远程分支
  • git branch -a # 查看所有分支
  • git tag -n: 查看当前项目仓库中包含的所有标签
  • git checkout -b <name>: 创建新分支并切换到新分支
  • git checkout <name>: 切换分支,name可以是分支名,可以是标签名,也可以是提交记录的哈希值
  • git diff 标签1 标签2: 比较两个版本之间的变化
  • git push origin <本地分支名>:<远程分支名>: 推送到远程,其中origin为默认的远程仓库名
  • git remote -v: 检查目前的git远程状态
  • git reset --hard <分支名>: 将当前分支回退到某一分支

3. 常见的使用场景

与人协作的每日流程:

1
2
3
4
5
每天早晨第一件事:git pull
然后开始工作,每有一小段进展就:git add -A和git commit -m ""
(git commit不加参数回车,会进入一个类似于vim的编辑器,在这里可以写下大段的message,然后Esc,输入:WQ回车)
每有一个较大的进展就git push; 每隔较长的一段时间就git pull。
当git pull 出现冲突时,文档中会标出冲突的位置,手动修复后,git commit,注意不加参数,这时会进入一个文档,按Esc,然后输入:WQ表示自己处理了merge。

从Github克隆仓库:

1
2
3
4
5
6
git clone <url>
git status
git add -A
git commit -m "2019/1/15"
git push origin master # master为远程分支名
git pull

本地新建git仓库:

1
2
3
4
5
6
# 进入要git管理的文件夹
git init
git add pre.py
git commit -m "2019/1/15"
git remote add origin git@github.com:LingyvKong/FriendRec.git # 链接为你要推动到的github仓库地址
git push origin master # master为远程分支名

参考链接

  1. 可以访问Try Git来获取更多快速了解Git的资源,本文中的一部分链接也来源于此。
  2. 详解VSCode利用Git来可视化管理源代码的方法: https://www.php.cn/tool/vscode/470709.html
  3. git本地文件夹的删除和添加:https://blog.csdn.net/qq_41320857/article/details/79292949
  4. 利用git上传本地文件、文件夹到Github,首先自行再Github网站上注册,然后参照此链接:https://blog.csdn.net/sinat_20177327/article/details/76062030

请我喝杯咖啡吧~

支付宝
微信