Git笔记:
Git分布式版本控制系统,适用于团队开发合作
一 概念
- 安装和配置
- 安装git客户端(Linux,Windows,Mac)
- 配置环境变量
- 初始化git
- 克隆创建
- http方式clone
$ git clone <url>
- ssh方式clone
配置ssh-key- 命令ssh-keygen -C “用户名”( passphrase留空更方便)
- 把*.pub文件内容复制到git服务器端进行配置(pub是公钥,可以告诉任何人,私钥自己保管好)
- 部分客户端配置( TortoiseGit 、SourceTree、GitKraken)
- 本地clone方式
$ git clone <文件目录>
//创建版本库(裸库)
$ git init --bare <仓库名称>
- 基本名词
- 工作区 :本地的git clone的目录就是工作区
- 版本库 :工作区下的.git目录就是版本库
- 远程仓库 :服务器上的“版本库”
二 git语法
-
git status 显示仓库状态
简化版语法:git status -s
简化版标识:
?? 表示文件未跟踪
D 表示删除文件
A 表示新增文件
M 表示修改文件
R 表示改名
UU 表示冲突
蓝色表示已经存在暂存区 ,红色表示未在暂存区 -
git add 表示把差异加入暂存区
语法实例:
git add <新文件> //表示跟踪新文件 并把新文件放入暂存区,添加新文件时必须标注明文件的路径
git add <修改的文件> // 将修改的文件放入暂存区
git add <手动删除的文件> // 将删除文件这一操作放入暂存区
git add <解决冲突的文件> //将冲突文件发生的差异放入暂存区
git add . //这里有个点" . "意思将所有改变的差异放入暂存区
或者用 git add *
git mv <文件原来的名称> <文件现在的名称> //改名并直接进入暂存区
git rm 删除一把那个直接进入暂存区
git rm --cached < file > //停止跟踪文件但不删除文件
git diff < file > //比较工作区与暂存区文件
git diff < commit > < file > // 比较两个版本库比较 -
提交到版本库
语法:
git commit //提交所有暂存区文件到本地版本库
git commit -m “本次提交的说明” //提交所有暂存区文件到本地仓库
git commit -am “说明信息” //提交所有修改过文件到本地仓库 不论在不在缓存区 -
历史查看
git log //查看提交历史(所有的提交日志)
git log --graph //以ASCII图形方式查看
git log --oneline //简化方式查看
git log --graph --oneline //以ASCII简化方式查看
git log -p < file> //查看指定文件提交历史
git log -p < file > //查看这个文件谁在什么时间修改了什么 -
重新提交
语法:git commit --amend //提交完发现漏掉其他文件没有添加,或者提示信息写错
git commit -amend -m ‘修改信息说明’ //重新提交并直接修改备注信息 -
撤销操作
(1)文件修改了 没有add,撤销修改之后和版本库一样
(2)文件修改了,添加到暂存区之后,又做了修改,撤销之后回到和暂存区一样
git checkout --< file> //注意中间是两个-,一个-表示切换分支 -
回退操作
git reset --hard HEAD //取消所有未提交的修改,恢复到最近一次提交
git reset --hard HEAD^ //取消所有未提交的修改,回退到前一的版本
git reset --hard HEAD~5 //取消所有未提交的修改,回退到前五的版本
git reset --hard xxxxxxx //取消所有未提交的修改,回退到commit的版本 -
账号密码记录在本地:
git config --global credential.helper store -
下载项目的zip文件解压之后没有.git文件,没办法commit,
这个时候需要git init ,然后和项目关联
unzip <repo>.zip
cd <repo>
git init
git add .
git remote add origin https://github.com/<user>/<repo>.git
git remote update
git checkout master