目录
几个git名称解释
git:指代git版本管理解决方案,实际上是用仓库来进行代码的管理操作。 仓库又可以分成本地仓库和远程仓库。
git客户端: 在自己电脑上安装的工具,能够使用git的命令来进行版本仓库的管理。 在本地对仓库来进行管理。git客户端需要在电脑上生成公私钥。
远程仓库:
gitlab: 相当于一个私服。公司内部可以用gitlab进行git仓库系统的搭建,在公司内部来进行代码管理。如果需要进行使用的话,可能需要和管理员做个对接。 把公钥交给管理员进行配置,或者由管理员分配账号。
github(gitee就是中文版): 是一个云端的代码托管仓库。 会有很多的开源项目在github进行分享管理。 也可以使用私有的,但是如果公司使用就要收费。
Github是由git维护的公共社区:GitHub: Where the world builds software · GitHub,其上有相当多的优秀开源项目可供下载。
Gitee则是国内的Git开源社区:Gitee - 基于 Git 的代码托管和研发协作平台。同学们可以多浏览Git上的优秀开源项目。
git使用
最核心的操作其实就是向远端仓库提交代码以及从远端仓库拉取代码。
使用场景:
多人协作进行开发:
1、A开发修改本地文件,经过add commit 和push 之后,推送到远程仓库,远程仓库发生变化
2、B需要拉取最新的源码 git pull
通常命令操作: add -> commit ->push ->到其他电脑上 pull
git在本地进行管理:
工作区:你自己电脑上的文件系统里的文件夹
暂存区(stage):用于存储当前工作区中的变化信息,等待确认之后再提交到本地仓库。 add
本地仓库: 实际确认之后,在本地建立的对于文件的管理仓库,其实就是.git文件夹中的内容。 commit
分支的概念: 其实就是不同的代码版本,每一个git仓库默认都有一个master主分支。
git init :在当前文件夹初始化一个git本地仓库,也就是生成.git文件夹。 .git文件夹才是仓库本体。
git add <文件名或者路径>: 用的最多的 git add . 直接把当前目录的所有改动全部提交到暂存区
git restore <文件名>: 退回修改。 将工作区里的改动还原。 少用这个。
git restore --staged 将暂存区里的改动还原
git commit -m "提交信息"
git status 查看工作区的状态,有没有文件是未提交的,有没有文件是在暂存区的
时间线上的改动:回退到指定版本
git log 查看改动信息,如果已经做过回退了,可以通过 git reflog来进行查看。
HEAD就是当前版本的标记。
git reset --hard HEAD^ 表示退回到之前的版本,一个^表示退一个版本。
git reset --hard [commit版本信息号,一般至少写四个字]
实际的应用场景:平常操作文件的时候,可以用git本地进行管理提交,随时可以回到之前的状态。
git和远程仓库的交互:
提交:
1、首先得有个远程仓库: 在gitee上新建一个
2、绑定本地仓库和远程仓库
git remote add [给远程仓库取个名字] [git远程仓库的url地址]
3、git push [远程仓库名] [分支名master]
如果没有进行本地和远端的分支绑定就可以用 --set-upstream来进行设置
设置完之后,不需要再填远程仓库和分支,直接git push即可。
注意:第一次进行提交的时候,会需要填写gitee的账号和密码,注意是gitee的!!!!
如果账号密码填错了,之后会出现提交的时候authentication 失败 ,这时可以在系统的凭据管理器里面找到gitee的管理地址,修改用户名和密码。
note:
从2021.8.13开始,不能用用户名/密码登入。密码要换成token登入:
克隆:下载源码到本地。
git clone :在本地创建一个文件夹,并且完成.git文件夹的创建,也就是完成本地仓库的创建。
clone的同时,相当于已经完成upstream的设置,绑定了当前的分支和远程的分支。所以push 和pull 都可以不带参数默认使用。
git pull [远程仓库名] [分支名master]
如果已经设置了upstream,那么不需要再输入了,直接git pull即可。