代码版本控制
其实就是Git,也可能还会有人在用svn和sourcesafe,但我推荐大家使用git。
安装/配置
一般情况下,Linux系统一般都已经自带,无需安装,如需安装,Debian/Ubuntu请使用以下命令
sudo apt install -y git-all ssh
Windows请下载安装包后自行按提示安装。
配置git用户名和邮箱
这里配置的用户名和邮箱都不作为验证用,用户名推荐使用中文。在查找代码历史时可以更方便查出作者是谁,不推荐使用偏僻的英文名或其它难以分辨的用户名。
git config --global user.email "张三的邮箱地址"
git config --global user.name "张三"
公钥的使用
在个人设置中设置个人ssh公钥(如果是自建的git仓库或gitee,请联系你的管理员),之后使用ssh方式clone代码后再提交代码时不需重复输入用户名和密码。
-
生成生成ssh公钥及私钥
ssh-keygen -t rsa
一路回车即可,如果遇到文件已经存在的提示,可以选择覆盖原有文件,如下
Generating public/private rsa key pair. Enter file in which to save the key (/home/feidao/.ssh/id_rsa): /home/feidao/.ssh/id_rsa already exists. Overwrite (y/n)?
输入
y
并回车 -
将生成的文件
- windows c:/用户/个人用户名/.ssh/id_rsa.pub
- linux ~/.ssh/id_rsa.pub
中的内容全部复制到个人设置即可
提示:
可以通过cat命令输出这个文件的内容(windows请在
Git Bash
中执行该命令)cat ~/.ssh/id_rsa.pub
注意:如果是通过文本编辑器打开的该文件,请注意一定不要误修改这个文件,如果你修改过,请按上面的步骤重新再次生成一次。
-
测试
ssh -T git@github.com
如果配置成功,命令行会提示
Hi 张三! You've successfully authenticated, but GitHub does not provide shell access.
,说明已经配置成功。如果执行以上命令后有权限错误,执行以下命令修复
ssh-add
再次运行测试命令,应该就成功了,如果还是有问题,请联系 管理员协助。至此,系统初始化完成。
码云
是一个国产的github,由于众所周知的原因,使用它比github速度快一些。个人或是小团队可以尝试。如果团队较大且,可以使用自建git仓库(推荐gitlab)。
派生(fork)
此为github上的操作,它的意思是:将别人的项目(开源的或是该项目管理员分配有权限的)派生一个过来到你自己的用户名下,这个项目就成为你自己的一个项目,因为是你自己名下的项目,所以,你具有这个项目的所有权限,以下例子中,如果你没有对应的项目可用,可以Fork这个项目到你自己名下,再进行以下的git实操。
克隆(clone)
- 在Github上打开任一个项目页面,点击绿色的
Code
按钮,用鼠标选择ssh
页签,点击复制按钮 -
在终端上执行以下命令切换到项目目录
cd ~/git
-
在终端执行以下命令克隆代码,以下命令需要删除掉
xxx
,粘贴第一步复制的git地址到xxx
的位置cd ~/git git clone xxx
-
查看已克隆的项目目录
ls
-
使用以下命令切换到项目目录,假设上一步查看已克隆到本地的目录名为
yyy
,以下命令需要删除掉yyy
,替换为上一步克隆到本地的项目目录名cd ~/git/yyy
-
在终端执行以下命令下载项目依赖
yarn
- 使用vscode打开项目目录
提交(commit)
- 在项目中进行代码开发,并保存修改
- 在vscode中按
ctrl+shift+g
或者在左侧第三个图标上点击,切换到代码管理面板,在该面板下面的文件改变列表中,检查一下有没有误修改不相关的文件,如果有这类文件,鼠标放到该文件上,会有撤销按钮出现,点击该按钮,在弹出的提示框中确认,还原该文件 - 在列表上方的消息区填写要提交的消息内容
- 按
ctrl+s
或ctrl+enter
提交修改,首次进行该操作vscode会弹出提示框,选择总是(Always)
即可完成提交
拉取(pull)
在克隆代码之后,可能会有人向服务器推送代码,这时就需要将服务器上的代码拉取到本地,具体操作为
-
在终端中使用cd命令切换到项目目录下,如项目名称为yyy,在终端上使用以下命令切换到该项目目录下
cd ~/git/yyy
-
在终端上执行拉取命令
git pull
注:
- 有时候本地文件有修改而未提交,刚好这些文件有些文件与服务器上的文件有冲突,是不允许拉取的,在拉取的时候会有错误提示
- 有时候拉取完代码之后部分已提交的文件与服务器上的文件有冲突,需要手动解决完冲突后再进行提交合并冲突的操作
推送(push)
本地提交后,需要使用推送操作将本地提交推送到服务器,具体操作如下
-
在终端中使用cd命令切换到项目目录下,如项目名称为yyy,在终端上使用以下命令切换到该项目目录下
cd ~/git/yyy
-
在终端上执行推送命令
git push
同步(sync)
在vscode中,可以通过界面上的同步按钮进行代码的同步操作,同步操作包含了pull和push操作。
冲突
我们经常会遇到代码有冲突的情况,这通常会比较棘手。什么是冲突呢?比如张三和李四同时修改了同一个文件的某个相同的部分,张三先将修改的代码提交(commit)并推送(push)到服务器了,这个时候李四也修改了本地的代码,并且也提交(commit)了,这时候李四再拉取代码的时候就会提示有冲突并且无法自动合并,需要手动解决冲突