一、git历史
二、版本管理形式
集中式 vs 分布式
三、安装
1. 安装步骤
(略)
2. 验证
-
屏幕任何地方右键出现如下菜单下则安装成功
-
点击Git Bash Here,查看版本
-
配置用户及邮件信息
git config --global user.name "Your Name" git config --global user.email "email@example.com"
四、版本库
版本库又名仓库,英文名repository
可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1. 创建版本库
选择要做版本管理的目录,然后执行命令
$ git init
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
执行命令后,当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
2. 将文件添加到版本库
git add <file>
git commit -m <message>
git add 实际上就是把文件修改添加到暂存区
git commit 实际上就是把暂存区的所有内容提交到当前分支
简单理解为需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。创建Git版本库时,Git自动为我们创建了唯一一个master
分支,所以,现在,git commit
就是往master
分支上提交更改。
3. 关于git的三层结构
五、基本操作
1. 查看状态
查看状态
git status
查看修改内容
git diff
2. 版本回退
-
查看提交日志
git log --pretty=oneline
-
回退到上一个版本
git reset --hard HEAD^
-
回退到指定版本,版本号没必要写全,前4位就可以了
git reset --hard <版本号>
-
查看命令历史
git reflog
3. 管理修改
-
查看工作区和版本库里面最新版本的区别
git diff HEAD -- <文件名>
4. 撤销修改
git checkout -- <文件名>
5. 删除文件
git rm <文件名>
git commit
如果误删,可以使用git checkout撤销 (场景补充)
六、 远程仓库
自行注册github或码云
1. 创建SSH Key
输入如下命令,然后一路回车
ssh-keygen -t rsa -C "youremail@example.com"
2. 上传公钥
3. 创建项目
(码云上“项目”二字已更新为“仓库”)
4. 关联远程库
git remote add origin https://gitee.com/green_vegetables/mi.git
5. 拉取项目
第一次上传有可能会遇到push失败的情况,远程库上有一个README.md 文件没有下载下来 ,我们得先拉取
git pull --rebase origin master
6. 推送到远程库
git push -u origin master # 第一次加-u参数,以后不需要
-f 表示强制覆盖远程库,不要轻易使用
推送前先确保本地版本和远程一致,如不一致,先pull
7. 克隆远程库
git clone https://gitee.com/green_vegetables/mi.git
8. 成员管理
七、分支管理
1. 创建与合并分支
-
创建分支
git branch dev
-
切换分支
git checkout dev
# 前两条命令可以合并成一条 git checkout -b dev # -b参数表示创建并切换
-
查看分支
git branch # 列出所有分支,当前分支前面会标一个*号
-
然后,我们就可以在
dev
分支上正常提交
-
合并分支
git merge dev
-
删除分支
git branch -d dev
Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在
master
分支上工作效果是一样的,但过程更安全
八、命令总结
命令 | 说明 |
---|---|
git config --global user.name “Your Name” | 配置用户名 |
git config --global user.email “email@example.com” | 配置邮箱 |
git init | 初始化一个Git仓库 |
git add <file> | 添加文件 |
git commit -m <message> | 提交文件 |
git status | 查看工作区的状态 |
git diff | 查看修改内容 |
git reset --hard commit_id | 版本回退 |
git log | 查看提交历史 |
git reflog | 查看命令历史 |
git checkout – file | 撤销修改 |
git rm <file> | 删除文件 |
ssh-keygen -t rsa -C “youremail@example.com” | 创建SSH Key |
git remote add origin git@server-name:path/repo-name.git | 关联一个远程库 |
git push -u origin master | 第一次推送master分支的所有内容 |
git push origin master | 推送最新修改 |
git clone git@server-name:path/repo-name.git | 克隆远程仓库 |
git branch | 查看分支 |
git branch <name> | 创建分支 |
git checkout <name> | 切换分支 |
git checkout -b <name> | 创建+切换分支 |
git merge <name> | 合并某分支到当前分支 |
git branch -d <name> | 删除分支 |
git log --graph | 查看分支合并图 |
git remote -v | 查看远程库信息 |
git pull | 拉取远程库 |
git tag <tagname> | 新建一个标签 |
git tag -a <tagname> -m “blablabla…” | 指定标签信息 |
git tag | 查看所有标签 |
git push origin <tagname> | 推送一个本地标签 |
git push origin --tags | 推送全部未推送过的本地标签 |
git tag -d <tagname> | 删除一个本地标签 |
git push origin :refs/tags/<tagname> | 删除一个远程标签 |
九、其它
1. Eclipse关联远程库
2. 在Eclipse中导入远程git项目
https://blog.csdn.net/m0_37613503/article/details/87985291
最后,最最关键的一步,把项目转换成maven项目(如果是其它类型根据需要选择)
2. Eclipse分支合并流程
以master、dev分支为例
- 在dev分支新增或修改文件
- 在dev分支commit新增或修改的文件
- 切换到master分支
- merge,注意要选择本地库或远程库待合并的dev版本
- 如果有版本冲突,手动处理后add to index
- 在master分支commit刚刚合并分支后的代码
问题
- git push推送失败
解决:
- git pull
- 手工处理冲突内容
- git add .
- git commit -i . -m “解决冲突” ,这里-i是关键,不加会报错:fatal: cannot do a partial commit during a merge
- git push