赞
踩
本文将从最基本的操作开始,逐步介绍如何创建本地仓库、连接远程仓库、克隆项目、添加文件、提交更改以及推送更新,通过本文的学习,将能够掌握Git的基本操作,为日后的项目开发打下坚实的基础。
在需要创建仓库的文件夹下,点击鼠标右键->选择Git Bash Here
输入 git init
指令:
创建成功后:
创建项目: git init XXX
输入 git init tModels
指令:
创建成功后:
.git 文件夹
称为仓库区 ,类似于一个数据库存储着每一次提交的变化;
.git 所在目录
称为工作区,在这里可以创建项目和其他文件.
暂存区 是存储将要被提交的文件变化的区域
通过 git add <文件名>
指令可以把可以把文件添加到暂存区;
添加到暂存区后,图标会变成如下所示:
如果文件太多,可以用 git add .
把所有的文件添加到暂存区
创建 2.txt、3.txt 文件:
添加成功后:
使用 git commit -m "提交消息"
命令提交暂存区存储的变化并生成一个新的版本
如 git commit -m "初次提交"
提交后:
文件图标会变成如下所示:
如果不加 -m "提交消息"
先修改 2.txt 文件:
添加到暂存区后,只输入 git commit
指令,会进入下面的界面:
这是 linux 里面的 vim 程序,相当于 Windows 里面的 记事本;
简单介绍下 vim 的常用指令:
i
命令进入插入模式 ;exc
退出插入模式;shift zz
退出Vim编辑器;使用 git status
命令查看状态;
使用 git log
命令查看日志;
有条件的话可以搭建自己的 Git 服务器
github:全球最大的开源项目托管平台
Gitee :也被称为“码云”,是中国领先的代码托管与社交化软件开发协作平台;
本专栏主要采用 Gitee 作为 Git 服务器,下面的操作也是基于 Gitee 服务器实现的
输入仓库名称
更改路径(也可以不更改)
写仓库介绍
设置仓库是私有还是开源
初始化仓库:a、选择语言 b、添加 .gitignore c、添加开源许可证
设置模板
首先获 HTTPS 的地址:
输入 git clone "https地址"
指令
克隆成功后:
如果是私有项目,第一次克隆需要我们输入 Git 的账号和密码
ssh 是一种开源非对称加密通信协议;
ssh 只是一种协议,有开源实现也有商业实现,Git 默认使用开源实现的 openssh;
ssh 通信需要一堆密钥(公和私一对),私钥留在自己电脑上,公钥给其他电脑;
使用 Git Gui 生成密钥 并把公钥放在服务器上;
注意:点击 Generate Key 时会弹出一个 OpenSSH 的对话框,可以输入一个密码,这个密码是对公钥的再次加密,提高公钥的安全性
安装完第一次克隆会请求是否允许使用 ssh,需要我们输入一个 “yes”
下面的操作为了方便都使用 TortoiseGit 进行;后续会有介绍 Git 指令的文章;
将文件添加到暂存区;
上图中
tExcelHelper.py 是已经添加过的状态
tFileINI.py 是未添加过的状态
添加方式:
成功添加后:
提交只提交到本地仓库,需要推送才会把变化更新到服务器仓库
在日志信息中记录此次变更的信息:
成功提交后:
在提交成功后,可以直接推送到服务器
注意:如果服务器版本比我们新,会推送不成功需要先拉取
推送成功:
这时刷新服务器,可以看到:
注意:拉取时应确保工作区整洁
master 是仓库的主分支,为了避免开发过程中程序员之间相互影响,一般选择创建一个新的分支来开发新功能;
这时提交的话 还是显示提交到 master 分支,所以需要切换分支
右键选择"切换/检出到(S) 分支名"
如果在 “新的分支” 下创建新文件,在版本分支图中:
通过 “显示日志” 可以看到该分支下的变更信息
如果在 master 和 “新的分支” 下都有已提交的文件,那应该如何合并呢?
首先要切换到主分支上
选择"合并"
选择要合并到主分支上的分支
可以看到已经合并成功:
两个分支修改了同一文件,合并的时候会发生冲突
例如:在 master 分支中修改 new.txt 文件
在 “新的分支” 分支中同样修改 new.txt 文件:
这时,如果想要把 “新的分支” 合并到 master 中来,合并会报错:
在两个分支中修改的 new.txt 文件图标变成:
打开之后:
协商修改冲突位置,并重新提交
会提示当前提交的文件是冲突的,需要手动解决:
也可以在合并失败时直接点击"解决"
双击要解决冲突的文件:
感叹号的这一行为有冲突的地方:
可以自己编辑文本,也可以右键选择优先使用左侧或者右侧文本:
然后点击 “保存” 选择 “标记为解决”:
’再次提交时会提示 “是一个特殊的提交”:
尽量避免冲突,如果有冲突:
忽略文件:.gitignore
用 touch .gitignore
命令来创建一个忽略文件
文件夹名/ ([Aa]忽略大小写)
/文件夹名(路径)/
*.后缀名
!*.文件名
或 !A/
注意:空文件夹会被自动忽略
在 “版本日志界面” 选择一个想要回退的节点,使用重置(Reset)命令:
三种重置类型:
1、软重置(S):不更改工作区和索引;
2、混合(M):保持工作区不变,重置索引文件(重置暂存区);
3、硬重置(H):重置工作区和索引(丢弃所有本地变更,谨慎使用);
注意:
Head:当前分支的引用指针(重置就是移动Head这个指针)
Index:就是缓存区(被Add的,也可以说是将要提交的,文件的快照)
工作区:.git所在目录以及子目录
目的是放置硬重置后,再想恢复的情况
具体操作,选中版本后,右键,选择 “在此版本上创建标签”:
如果想要重置到 打标签 的这个版本,要选择 “标签(T)”:
子模块:就是一个 Git 仓库包含其他 Git 仓库
当我们需要把其他开源项目作为本项目的一个库,并可以随时拉取更新的时候
或者我们的项目需要分模块独立开发的时候可以使用子模块
添加子模块的操作:
添加子模块成功:
会自动生成 .gitmodules 文件(配置文件):
注意:克隆有子模块的仓库,需要选择递归
issue:讨论
PullRequest:拉取请求,为项目贡献代码,请求项目管理者合并自己的代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。