git使用教程

1,359 阅读4分钟

1.git的安装和配置

首先就是安装git和配置环境了,安装的话可以到官网下载,但是不推荐,因为太慢了。

推荐使用淘宝镜像:npm.taobao.org/mirrors/git…

下载下来后就是一键next

先新建一个文件夹,然后进入,右键选择Git Bash Here

输入:git config -l  来查看git配置

然后先把用户名和用户邮箱配置一下:

git config --golbal user.name "(名字自己取)"

git config --golbal user.email "(邮箱自己取)"

这样就ok了,不报错就是配置好了。

接下来先把文件的隐藏项目打开:

环境变量可以不用配置。

2.git的核心理论

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

git的工作流程:

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

3.git项目创建及克隆

先新建一个文件夹,然后进入,右键选择Git Bash Here

然后输入:git init

就创建了一个.git文件,这个是隐藏文件,需要查看里面打开隐藏项目才能看得到。

克隆远程仓库命令:git clone [url]

url就是远程仓库给的复制链接,一般用github或者码云

我已码云为例:

将链接复制上来就可以克隆到文件夹下了。

克隆成功。

4.git文件操作

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add.状态变为Staged

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

    查看指定文件状态: git status [filename]

    #查看所有文件状态: git status

我们新建一个1.txt文件

首先我们可以查看文件状态:

看的出我们刚刚新建的1.txt文件是未跟踪状态

我们可以通过指令git add 1.txt将他入库,然后再查看文件状态:

入库成功;如果想把他删除出库就用git rm 1.txt

若要放入本地仓库则用git commit命令

存入本地成功,再看看文件状态:

就没有状态了,因为已经存入本地仓库了。

如果说有时候有些部分文件不想导入库,而git add.可以把当前目录的所有文件导入库,这个时候可以用以下这个办法忽略导入:

5.配置ssh公钥并且创建远程仓库

在这个目录下新建一个.ssh文件夹

然后进入.ssh文件夹运行git bush here

然后输入命令:ssh-keygen -t rsa

.ssh文件夹里就会生成两个文件,带.pub的就是公钥。

然后用txt格式打开这个公钥,复制好。来到码云个人页面里的设置页面,点击ssh公钥,复制进去:

然后在码云中创建一个仓库,自己设置就行了,仓库新建好了后可以取复制克隆用的url链接了

再到一个新的文件夹里用上面的克隆命令:git clone [url]

克隆好了后(我的克隆文件叫studyfirst)然后在和这个文件的同一目录下新建一个文件夹,用来做项目,下面以idea为例:

然后将studyfirst文件里的东西拷贝到新建文件夹里就好了,结果如下:

刷新一下就出来了,右上角也有新的GIT工具

先通过绿勾添加进来文件,后面就可以在这个idea终端(Terminal)里使用git命令了

先add,然后commit,最后再git push就上传到码云上去了。

这个idea就是上传上去的。