一、介绍
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性!
二、Git文件四中状态
- untracked:未被追踪
-
Modified:工作区修改了某个文件但是还没有添加到暂存区
-
Staged:把工作区修改的文件添加到暂存区但是没有提交到版本库
-
Committed:数据被安全的存储在本地库中
三、Git三层结构
分类 | 介绍 |
---|---|
工作区 | 仓库的目录。工作区是独立于各个分支的。 |
暂存区 | 数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。 |
版本库 | 存放所有已经提交到本地仓库的代码版本 |
版本结构 | 树结构,树中每个节点代表一个代码版本。 |
四、Git基本命令
-
git --version:查看当前版本
-
git init:初始化
-
git add:添加文件到暂存区
-
git status:查看文件状态
-
git commit -am ‘描述信息’:把暂存区的内容提交到当前分支
-
git log:查看操作日志
-
git log --oneline:查看简易日志
-
git reflog
五、git config配置命令
-
git config --global --list:查看配置变量列表
-
git config -- global --add zyf.test 'eeee':新增配置变量名为zyf.test ,值为eeee
-
git config --global -- unset zyf.test:删除配置变量zyf.test
-
git config --global user.name zhangyanfen
-
git config --global user.name 'zhangyanfen@ireadyit.com':配置全局用户名
-
git config --global user.password 'asdf1234':配置密码
六、Git 分支命令
-
git branch:查看本地有几个分支,且在哪个分支下工作
-
git branch -r:查看远程分支
-
git branch -a:查看所有(本地、远程)分支
-
git branch -vv:查看本地分支与远程分支的对应关系
-
git branch dev:创建本地dev分支
-
git checkout dev:切换dev分支
-
git checkout -b dev:创建一个本地dev分支,并切换到其上进行工作
-
git merge dev:合并dev分支到当前分支
-
git branch -d dev:删除本地dev分支
七、Git 远程仓库命令
-
Git 远程仓库
-
git remote add [name] [url]
-
git remote rm [name]
-
git pull [remoteName] [localBranchName]:从远程仓库拉取代码
-
git push [remoteName] [localBranchName]:将代码提交到远程仓库
-
git clone [remoteName] [remoteBranch]:克隆一个远程仓库到本地
-
git clone -b dev [remote repository address]
克隆一个远程dev分支到本地,并且创建本地dev分支 -
git clone -b dev http://zhangyanfen:asdf1234@32.102.212.182:35002/water_brain_data/asset_oms.git
克隆一个远程dev分支到本地,带用户名和密码访问
-
八、Git撤销命令
-
修改已经加到暂存区,但未commit
-
git checkout filename:拉取暂存区的文件并将其替换到工作区
-
git reset HEAD filename:把暂存区的修改撤销掉,重新放回工作区
-
git reset head -- filename:将文件从本地仓库回退到缓冲区,不影响工作区
-
git reset --hard 版本号:拉取某一个版本的文件
-
git reset --hard HEAD^
-
-
直接丢弃工作区的改动
-
git commit --amend:撤销上一次提交 并将暂存区的文件重新提交
-
九、Git 文件删除
-
git rm --filename:删除工作区及暂存区中的文件, 相当于删除后执行git add
-
git rm -r --cached filename:把版本库中的filename从版本库中移除
参考文档: