一、git是什么?
版本控制系统,采用了分布式版本库的方式,不必服务器端软件支持;
二、git和svn的区别?
git不仅仅是个版本控制系统,它也是个内容管理系统(CMS), 工作管理系统等。
1.git是分布式的,svn不是;
2.git是把内容按元数据方式存储,而svn是按文件;
3.git分支和svn的分支不同;
4.git没有一个全局的版本号,而svn有;
5.git的内容完整性要优于svn;git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏;
三、git安装
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
$ apt-get install git
$ git --version
git version 2.30.2
四、配置用户信息
$ git config --global user.name "tingting.zhou"
$ git config --global user.email java_ztt@163.com
五、查看配置信息
git config --list
六、git工作流程
- 克隆git资源作为工作目录;
- 在克隆的资源上添加或修改文件;
- 如果其他人修改了,你可以更新资源;
- 在提交前查看修改;
- 提交修改;
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;
七、git工作区、暂存区和版本库
工作区:就是在自己电脑里面能看到的目录;
暂存区(stage或index):一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区有时也叫索引;
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库;
八、git创建仓库等
(一)、初始化一个git仓库:git init
在执行完成git init命令后,git仓库会生成一个.git目录,该目录包含了资源的所有元数据,其他的项目目录保持不变;
(二)、初始化一个指定目录的git仓库:git init newrepo
(三)、文件纳入版本控制: git add *.java
(四)、提交文件:git commit -m '提交说明'
(五)、从现有git仓库中拷贝项目:git clone git仓库地址;git clone git仓库地址 本地目录
九、git基本操作:git clone、git push、git add、git commit、git checkout、git pull
-
git add:添加文件到仓库;
-
git status:查看仓库当前的状态,显示有变更的文件;
-
git diff:比较文件的不同,即暂存区和工作区的差异;
-
git commit:提交暂存到本地仓库;
-
git reset:回退版本;
-
git rm:删除工作区文件;
-
git push:移动或重命名工作区文件。
十、提交日志:
-
git log:查看历史提交命令
-
git blame 文件名称 git blame 以列表形式查看指定文件的历史修改记录;
十一、远程操作:
-
git remove:远程仓库操作
-
git fetch:从远程获取代码库
-
git pull:下载远程代码并合并
-
git push:上传远程代码并合并
十二、分支相关命令:
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
合并分支:
git merge