【源代码管理工具GIT】

什么是GIT?
Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制
集中式和分布式

集中式:Svn : 由中央服务器统一管理代码 ,安全性差。

分布式:Git:每个电脑都有一个版本库,安全性高。

四个工作区:
Workspace: 工作区,就是你平时存放项目代码的地方

Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。

Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。

Remote: 远程仓库,托管代码的服务器,可以简单的
认为是你项目组中的一台电脑用于远程数据交换。

【源代码管理工具GIT】_第1张图片
工作流程
git工作的一般流程:

  1. 在工作目录中添加,修改文件
  2. 将需要进行版本管理的文件放入暂存区
  3. 将暂存区的文件提交到git仓库

git基本命令
下载git包在这里插入图片描述

1.创建一个目录

然后再这目录里初始化GIT.
在这里插入图片描述

2.使用git init 命令将其变为一个可以通过git管理的仓库 注意事项:第一次使用git命令提交代码之前,需要先设置用户名及邮箱,之后就不需要了:

stu@stu-virtual-machine:~/myproject$ git config --global user.email
[email protected]
stu@stu-virtual-machine:~/myproject$ git config --global user.name “youname”
在这里插入图片描述

3.使用git add filename 添加文件到暂存区

4.使用git status 查看仓库状态

5.使用 git commit -m “版本描述信息” 提交版本到仓库
**注意:切换回工作区时并修改了这个文件,用git reset --hard HEAD再切换到版本库最新文件时,然后想切换回之前的工作区,如果没有保护现场,那么将找不到工作区的内容。**所以我们工作区内容想再次利用时应该将其放入保护现场。

6.使用git log查看提交的历史记录
【源代码管理工具GIT】_第2张图片
在这里插入图片描述

7.使用git reflog 查看对仓库的操作日志

8.使用git diff HEAD 比较当前内容与最后一次提交的版本的差异,如下在main.c中添加了一行内容,显示 添加的一行前面有‘+’号标识。如果内容相同则该命令不显示输出结果。HEAD也可以省略默认就是与最近 一次比较。

9.使用git checkout filename 放弃对工作区代码的修改。

10.使用git reset HEAD filename 从暂存区撤销
‘git reset --hard Head^^ 表示回到最近往前第二次的提交’
‘git reset --hard Head^ 表示回到最近往前第一次的提交’

11.使用git rm filename 删除一个文件, 此时提交到暂存区,需要commit后才在版本库中删除

12.使用git reset --hard HEAD^ 回退版本

【源代码管理工具GIT】_第3张图片
在这里插入图片描述
【源代码管理工具GIT】_第4张图片

git分支的操作命令

1.查看分支: git branch

2.创建分支: git branch 分支名

3.切换分支: git checkout 分支名

查看分支现在位于的文件:

在这里插入图片描述
在这里插入图片描述

4.创建并切换到该分支: git checkout -b 分支名

5.删除分支,不能删除当前所处分支,切换到其它分支再删除: git branch -d 分支名

6.合并某个分支到当前分支: git merge 分支名 ,合并时可能产生冲突,需要解决冲突。 有时需要禁止快速合并,可执行:git merge --no-ff -m ‘描述’ 分支名

7.历史记录一行显示 : git log --pretty=oneline

8.以图表形式显示分支:git log --graph

9.保护现场 git stash,当前工作区有代码修改了,没有提交,是不能切换到其他分支,我们可以先保存现场,再切换其他分支。

10.列出所有保存的现场信息 git stash list

11.取出某次的现场信息,继续工作 :git stash pop “stash@{1}” ,默认是最近一次,如果有多个现场,也 可以加上编号"stash@{1}"指定获取某一个。不同分支的现场,应该回到对应分支再获取,否则会自动合 并现场到当前分支的工作区。

注意:取出某次的现场信息一旦取出就不在list中了,再次使用必须添加到list中去(用git stash)。

远程仓库操作

生成通信密钥:ssh-keygen -t rsa -C “[email protected]” ,生成的公钥在/home/stu/.ssh/下,如下图
【源代码管理工具GIT】_第5张图片
【源代码管理工具GIT】_第6张图片
上图中的ENTER是修改存放公钥的文件和文件夹的名字 我们直接回车 放在默认位置就可以。

cat ~/.ssh/id_rsa.pub 查看公钥
把得到的公钥放在gitee网站中的个人仓库->设置->左下有个公钥,点进去就可以看见。
【源代码管理工具GIT】_第7张图片

测试与github或者gitee(码云)有没有连通。测试github 的命令 :ssh -T [email protected]
【源代码管理工具GIT】_第8张图片

克隆项目:git clone 项目地址
这里把gitee网上仓库的文件夹克隆给本地,在以后的上传和下载都要用到这个克隆的地址(文件夹)。

【源代码管理工具GIT】_第9张图片
【源代码管理工具GIT】_第10张图片
复制地址,再用git clone命令即可。

提交分支到远程仓库:git push origin 分支名
【源代码管理工具GIT】_第11张图片

提交分支到远程仓库,并跟踪分支 :git push -u origin 分支名

拉取远程服务器上的分支更新到本地 :git pull origin 分支名

【源代码管理工具GIT】_第12张图片

注意上面的username 和password 是gitee网站上的账号和密码,我在最开始设置的时候设置了他们,这个也不设置,按回车跳过就好。

你可能感兴趣的:(代码管理,git,源代码管理,github)