git 有什么用?
- 回退到之前的版本
- 查看历史更新记录
- 分支功能,开发、发布两不误
- 配合远程仓库轻松实现多人协作
- 分布式版本控制系统, 数据更安全
git 主要的概念
- 工作区 (Workspace)
- 暂存区 (stage)
- 版本库( Local Repository)
- 远程仓库 (Remote Repository)
创建git 仓库
以下以ubuntu系统为例
- 安装
$ sudo apt-get install git
- 配置
git config --gloable user.name "fengyang"
git config --gloable user.email "yfeng880@163.com"
- 生成ssh-key
创建远程仓库
pass-
远程仓库添加ssh-pub-key
复制 id_rsa.pub 文件中的内容, 并在github 上按照上图所示步骤添加 ssh key, 看到如下信息,表示添加成功
-
获取远程仓库的链接地址
github 上默认的下载协议是https
, 这里选择 Use SSH
, 并复制链接地址
-
克隆远程仓库
回到 ubuntu 下,新建一个目录, 用来存放将要克隆的远程仓库,我的目录为/home/fy/repository
在当前目录下输入git clone
并粘贴刚复制的远程仓库的路径,
git版本管理
- 版本 提交 回退
我们修改了 README.md , 在第二行增加了learn git add cmd
用 git add .
命令将当前修改添加到暂存区
- git 分支管理
git 服务器搭建
总结
git 常用流程
git 恢复工作区内容到之前状态
场景1: 修改没有提交到暂存区
git checkout --file
场景2: 修改提交到暂存区
此时如果直接使用git checkout --file
,只能回退到上次git add 时的状态, 不能回退到修改之前的状态
此时需要先清空暂存区, git reset HEAD
之后再使用 git checkout --file
场景3: 修改提交到了版本库
step 1: 先用git reset --hard HEAD^
回退到上一次版本
step2: 如果当前暂存区是空的, 直接 git checkout --file
, 否则同场景2
删除文件
命令 | 说明 |
---|---|
git rm file |
删除工作区文件并添加到暂存区 |
git commit -m "msg" |
将修改提交到版本库 |
给提交添加标签
命令 | 说明 |
---|---|
git tag v1.0 |
给最近的一次提交打上标签 |
git tag v1.0 commit id |
给某个commit 打标签 |
git tag |
显示所有标签列表 |
git show v1.0 |
显示v1.0标签信息 |
git tag -d v1.0 |
删除 v1.0标签 |
git push origin --tags |
推送本地未推送的标签 |
git push origin :refs/tags/v1.0 |
删除远程标签, 先删除本地标签 |
git log --decorate=full |
显示提交历史记录(包括tag信息) |
git 分支管理
命令 | 说明 |
---|---|
git branch |
查看分支 |
git check out <name> |
切换分支 |
git branch <name> |
创建分支 |
git checkout -b <name> |
创建并切换到新分支 |
git merge --no-ff <name> |
将指定分支合并到当前分支, 禁用fast forward 模式 |
git branch -d <name> |
删除指定分支 |
git stash |
保存工作区到暂存区 |
git stash apply |
恢复工作区,但是stash 区内容还在 |
git stash pop |
恢复工作区,删除stash区内容 |
git stash list |
查看stash区的内容 |