我们在使用github或者gitee(码云)的时候,常常会用到git工具。但是git工具应当如何使用呢?下面我将以同步到码云为例,来从头开始介绍说明。
一、初次安装git并配置
(1) 下载Git:下载
(2) 进行Git的初次配置:
Git安装完成后,需要配置用户名以及提交邮箱。用户名填写自己gitee上的用户名或者昵称,提交邮箱自行先在gitee上设置好。
然后我们就需要在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.md
和LICENSE
,保持仓库为空,方便我们后续同步,否则可能出错。
(2) 在本地要同步的文件夹里创建.gitignore
文件
.gitignore
文件的作用是告诉git哪些文件不需要添加到版本管理中,在.gitignore
中申明的文件不会被git仓库记录变动。
我们并不是每个文件都需要记录到git仓库并上传同步至在线仓库,例如缩略图、编译后的文件等等,因此我们需要先在我们项目目录下创建.gitignore
文件。
用文本文档打开,编辑。
在.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命令进入到你的工程文件夹。
输入以下指令:
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上面找到远程仓库地址并复制:
仓库别名其实就是我们为远程仓库指定的一个名字,这个名字只会记录在本地仓库而不会记录在远程仓库,是本地仓库对每个远程仓库的标识。一个git仓库添加远程仓库时必须为远程仓库指定别名,且一个本地仓库可以添加多个远程仓库。使用命令 git remote -v 可以查看当前本地仓库中所有的远程仓库别名和地址。
后面可以给本地仓库改名:
git remote rename 原名称 新名称
然后提交代码:
git push 仓库别名 要提交到的分支
别名上面已经设置。分支在我们gitee仓库创建时也可以设置。这里我们用的单分支,也就是仓库里只有一个master
分支。
上传同步时,例如:
git push fp master
就是把我们所有的代码(工程)上传到远程仓库的master
支。fp
是我们给仓库起的别名,等待其完成即可。
这样就成功地上传代码到远程仓库了。去远程仓库页面就可以看到我们的代码上去了!
如要创建开源许可证(LICENSE),可在仓库页面上面提示上创建。
三、以后同步这个仓库
后面工程改动后,再同步就很简单了:
git add . git commit -m"标识内容"git push 仓库别名 要提交的分支
如果说在git push...
这一步出错了,很有可能是因为远程仓库的文件发生了变动。那么就先执行:
git pull 仓库别名 分支
把远程仓库的变动同步一下。
再执行:
git push 仓库别名 要提交的分支
就可以了!
四,使用git克隆自己的仓库下来并进行开发同步
假设我们的本地代码不慎丢失了或者换了电脑,配置好git基本信息后,我们就可以把我们在码云上面的仓库克隆下来继续进行开发,再提交等等。
在项目仓库主页可以复制地址:
然后在一个文件夹打开命令行或者git bash,使用命令:
git clone 仓库地址
默认情况下克隆下来仓库的默认分支(大多数时候是master
分支),也可以克隆指定分支:
git clone -b 分支名 仓库地址
这时在线仓库就被克隆至这个文件夹了。
因为是从在线仓库克隆下来的仓库,所以里面的git仓库信息都在,远程地址也包含在仓库中,我们克隆下来自己的仓库就可以直接进行开发了,然后在按照第三大部分的add、commit和push命令进行同步即可,不需要像第二大步一样进行仓库初始化了!
进入我们的项目文件夹,打开命令行或者git bash,输入:
git remote -v
可以看到仓库信息都在:
可见在线克隆下来的仓库,只需继续进行开发、提交即可,不需要再进行初始化,因为它已经是git仓库了且包含了远程地址!
只不过克隆下来的仓库别名是origin
,可以自己进行修改使用git remote rename
命令。
除此之外,我们还可以移除本地的远程仓库、修改远程仓库地址:
# 移除远程仓库fpgit remote remove fp # 修改远程仓库fp的地址git remote set-url fp 新地址