Git基础使用-如何用Git把代码提交至仓库/新建仓库/同步代码/推送代码

558 阅读7分钟

我们在使用github或者gitee(码云)的时候,常常会用到git工具。但是git工具应当如何使用呢?下面我将以同步到码云为例,来从头开始介绍说明。

一、初次安装git并配置

(1) 下载Git:下载

(2) 进行Git的初次配置:

Git安装完成后,需要配置用户名以及提交邮箱。用户名填写自己gitee上的用户名或者昵称,提交邮箱自行先在gitee上设置好。

image.png

然后我们就需要在git里面设置了。打开终端(cmd)或者右键“git bash here” ,输入下面两条命令完成配置:

# 设置昵称
git config --global user.name "你的昵称"

# 设置提交邮箱
git config --global user.email "你的提交邮箱"

例如:

git config --global user.name "user1"
git config --global user.email "user1@example.com"

这样就设置了昵称为user1,提交邮箱为user1@example.com,自己设置时换为自己的昵称和邮箱。

昵称可以随意设置,但是提交邮箱必须设置为gitee上面配置的提交邮箱,否则无法同步代码。

配置文件在我们的用户文件夹的.gitconfig文件里,用文本文档打开也可以编辑。

二、新建远程仓库,并第一次把我们的本地项目同步到远程仓库

(1) 在gitee上新建仓库

新建仓库时建议不要加入.gitignore,README.mdLICENSE,保持仓库为空,方便我们后续同步,否则可能出错。

image.png

(2) 在本地要同步的文件夹里创建.gitignore文件

.gitignore文件的作用是告诉git哪些文件不需要添加到版本管理中,在.gitignore中申明的文件不会被git仓库记录变动。

我们并不是每个文件都需要记录到git仓库并上传同步至在线仓库,例如缩略图、编译后的文件等等,因此我们需要先在我们项目目录下创建.gitignore文件。

image.png

用文本文档打开,编辑。

.gitignore里面申明我们不需要记录的文件,下面给出几个例子:

# 忽略名为folder的文件夹(输入文件夹名后面加上一个/表示指定忽略的文件夹)指定文件夹里的所有文件也会一起被忽略
folder/

# 忽略名为.classpath文件或者文件夹
.classpath

# 忽略所有扩展名为class的文件
*.class

# 忽略文件名以abc开头的文件或者文件夹(例如abc_pidxxx)
abc*

# 忽略文件名包含abc的文件或者文件夹
*abc*

# 忽略名称包含ign的文件夹
*ign*/

# 忽略tmp文件夹里的a.txt(忽略具体的某个文件)
tmp/a.txt

# 忽略任意单级或者多级目录中的bin文件或者文件夹(**表示任意多级目录)
**/bin

可见申明的文件是以相对路径形式,即相对于.gitignore文件的路径,目录分隔使用/。其实也可以使用绝对路径,不过这里的绝对路径和平常的不同,只是对于项目文件夹而言,例如:

# 忽略项目根目录下名为.classpath文件或者文件夹
/.classpath

可见这里路径以/开头,表示项目根目录。

当然一般大多数情况.gitignore文件就是放在项目根目录的,相对路径和绝对路径表示可能感受不出什么区别,自己根据实际情况取舍即可。

(3) 以我们写好的代码工程创建本地仓库并记录第一次变动

打开我们本地工程的文件夹,右键“git bash here”。也可以打开终端(cmd),cd命令进入到你的工程文件夹。

image.png

输入以下指令:

git init

这样我们就成功地以这个工程建立了本地仓库,可以看到我们的这个工程文件夹里生成了个隐藏的.git文件夹,这个文件夹就标识了这个工程被建立了本地仓库,储存了我们仓库的信息。

然后把所有的文件添加记录到仓库:

git add .

注意add后面有个.

然后对我们仓库的文件进行commit标识,这一点很重要,不做这一步就无法上传代码:

git commit -m "标识内容"
# 例如:git commit -m "initial commit"

git commit 命令的作用,就是把我们这一次的变动记录下来,每执行一次这个命令,本地仓库的变动就会被记录为快照形式存放在git仓库中。

(4) 添加远程仓库地址

为了把代码同步到远程仓库,我们需要把远程仓库地址添加进我们的本地仓库,使用下列命令给本地仓库添加同步远程仓库地址:

git remote add 仓库别名 仓库地址

仓库别名自己随意取,例如:

git remote add fp https://gitee.com/user/exa.git

我们可以在gitee上面找到远程仓库地址并复制:

image.png

仓库别名其实就是我们为远程仓库指定的一个名字,这个名字只会记录在本地仓库而不会记录在远程仓库,是本地仓库对每个远程仓库的标识。一个git仓库添加远程仓库时必须为远程仓库指定别名,且一个本地仓库可以添加多个远程仓库。使用命令 git remote -v 可以查看当前本地仓库中所有的远程仓库别名和地址。

后面可以给本地仓库改名:

git remote rename 原名称 新名称

然后提交代码:

git push 仓库别名 要提交到的分支

别名上面已经设置。分支在我们gitee仓库创建时也可以设置。这里我们用的单分支,也就是仓库里只有一个master分支。

上传同步时,例如:

git push fp master

就是把我们所有的代码(工程)上传到远程仓库的master支。fp是我们给仓库起的别名,等待其完成即可。

这样就成功地上传代码到远程仓库了。去远程仓库页面就可以看到我们的代码上去了!

如要创建开源许可证(LICENSE),可在仓库页面上面提示上创建。

image.png

三、以后同步这个仓库

后面工程改动后,再同步就很简单了:

git add .
git commit -m "标识内容"
git push 仓库别名 要提交的分支

如果说在git push...这一步出错了,很有可能是因为远程仓库的文件发生了变动。那么就先执行:

git pull 仓库别名 分支

把远程仓库的变动同步一下。

再执行:

git push 仓库别名 要提交的分支

就可以了!

四,使用git克隆自己的仓库下来并进行开发同步

假设我们的本地代码不慎丢失了或者换了电脑,配置好git基本信息后,我们就可以把我们在码云上面的仓库克隆下来继续进行开发,再提交等等。

在项目仓库主页可以复制地址:

image.png

然后在一个文件夹打开命令行或者git bash,使用命令:

git clone 仓库地址

默认情况下克隆下来仓库的默认分支(大多数时候是master分支),也可以克隆指定分支:

git clone -b 分支名 仓库地址

这时在线仓库就被克隆至这个文件夹了。

因为是从在线仓库克隆下来的仓库,所以里面的git仓库信息都在,远程地址也包含在仓库中,我们克隆下来自己的仓库就可以直接进行开发了,然后在按照第三大部分的add、commit和push命令进行同步即可,不需要像第二大步一样进行仓库初始化了!

进入我们的项目文件夹,打开命令行或者git bash,输入:

git remote -v

可以看到仓库信息都在:

image.png

可见在线克隆下来的仓库,只需继续进行开发、提交即可,不需要再进行初始化,因为它已经是git仓库了且包含了远程地址!

只不过克隆下来的仓库别名是origin,可以自己进行修改使用git remote rename命令。

除此之外,我们还可以移除本地的远程仓库、修改远程仓库地址:

# 移除远程仓库fp
git remote remove fp

# 修改远程仓库fp的地址
git remote set-url fp 新地址