Git 基本操作
安装/配置
一般情况下,Linux系统一般都已经自带,无需安装,如需安装,请使用以下命令
sudo apt install -y git-all ssh
配置git用户名和邮箱
这里配置的用户名和邮箱都不作为验证用,不必跟gitee上一致,但建议最好保持一致
git config --global user.email "张三的邮箱地址"
git config --global user.name "张三"
Configuration(SSH and GPG keys)
在个人设置中设置个人ssh公钥,之后使用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@gitee.com
如果配置成功,命令行会提示
Welcome to Gitee.com, 张三!
,说明已经配置成功。如果执行以上命令后有权限错误,执行以下命令修复
ssh-add
再次运行测试命令,应该就成功了,如果还是有问题,请联系 管理员协助。至此,系统初始化完成。
码云
注册并登陆码云,接受管理员邀请进入项目。
派生(fork)
此为码云(或github)上的操作,它的意思是:将别人的项目(开源的或是该项目管理员分配有权限的)派生一个过来到你自己的用户名下,这个项目就成为你自己的一个项目,因为是你自己名下的项目,所以,你具有这个项目的所有权限,以下例子中,如果你没有对应的项目可用,可以Fork这个项目到你自己名下,再进行以下的git实操。
克隆(clone)
- 在码云上打开项目页面,点击桔黄色的
克隆/下载(clone/download)
按钮,用鼠标选择ssh
页签,点击复制(copy)
按钮 -
在终端上执行以下命令切换到项目目录
cd ~/gitee
-
在终端执行以下命令克隆代码,以下命令需要删除掉
xxx
,粘贴第一步复制的git地址到xxx
的位置cd ~/gitee git clone xxx
-
查看已克隆的项目目录
ls
-
使用以下命令切换到项目目录,假设上一步查看已克隆到本地的目录名为
yyy
,以下命令需要删除掉yyy
,替换为上一步克隆到本地的项目目录名cd ~/gitee/yyy
-
在终端执行以下命令下载项目依赖
yarn
- 使用vscode打开项目
提交(commit)
- 在项目中进行代码开发,并保存修改
- 在vscode中按
ctrl+shift+g
或者在左侧第三个图标上点击,切换到代码管理面板,在该面板下面的文件改变列表中,检查一下有没有误修改不相关的文件,如果有这类文件,鼠标放到该文件上,会有撤销按钮出现,点击该按钮,在弹出的提示框中确认,还原该文件 - 在列表上方的消息区填写要提交的消息内容
- 按
ctrl+s
或ctrl+enter
提交修改,首次进行该操作vscode会弹出提示框,选择总是(Always)
即可完成提交
拉取(pull)
在克隆代码之后,可能会有人向服务器推送代码,这时就需要将服务器上的代码拉取到本地,具体操作为
-
在终端中使用cd命令切换到项目目录下,如项目名称为yyy,在终端上使用以下命令切换到该项目目录下
cd ~/gitee/yyy
-
在终端上执行拉取命令
git pull
注:
- 有时候本地文件有修改而未提交,刚好这些文件有些文件与服务器上的文件有冲突,是不允许拉取的,在拉取的时候会有错误提示
- 有时候拉取完代码之后部分已提交的文件与服务器上的文件有冲突,需要手动解决完冲突后再进行提交合并冲突的操作
推送(push)
本地提交后,需要使用推送操作将本地提交推送到服务器,具体操作如下
-
在终端中使用cd命令切换到项目目录下,如项目名称为yyy,在终端上使用以下命令切换到该项目目录下
cd ~/gitee/yyy
-
在终端上执行推送命令
git push
同步(sync)
在vscode中,可以通过界面上的同步按钮进行代码的同步操作,同步操作包含了pull和push操作。
冲突
我们经常会遇到代码有冲突的情况,这通常会比较棘手。什么是冲突呢?比如张三和李四同时修改了同一个文件的某个相同的部分,张三先将修改的代码提交(commit)并推送(push)到服务器了,这个时候李四也修改了本地的代码,并且也提交(commit)了,这时候李四再拉取代码的时候就会提示有冲突并且无法自动合并,需要手动解决冲突
问题
若有其它问题,请及时寻求帮助