git 有什么用谎痢?
- 回退到之前的版本
- 查看歷史更新記錄
- 分支功能,開發(fā)卷雕、發(fā)布兩不誤
- 配合遠(yuǎn)程倉庫輕松實(shí)現(xiàn)多人協(xié)作
- 分布式版本控制系統(tǒng)节猿, 數(shù)據(jù)更安全
git 主要的概念
- 工作區(qū) (Workspace)
- 暫存區(qū) (stage)
- 版本庫( Local Repository)
- 遠(yuǎn)程倉庫 (Remote Repository)
創(chuàng)建git 倉庫
以下以ubuntu系統(tǒng)為例
- 安裝
$ sudo apt-get install git
- 配置
git config --gloable user.name "fengyang"
git config --gloable user.email "yfeng880@163.com"
- 生成ssh-key
創(chuàng)建遠(yuǎn)程倉庫
pass-
遠(yuǎn)程倉庫添加ssh-pub-key
復(fù)制 id_rsa.pub 文件中的內(nèi)容, 并在github 上按照上圖所示步驟添加 ssh key, 看到如下信息漫雕,表示添加成功
-
獲取遠(yuǎn)程倉庫的鏈接地址
github 上默認(rèn)的下載協(xié)議是https
, 這里選擇 Use SSH
, 并復(fù)制鏈接地址
-
克隆遠(yuǎn)程倉庫
回到 ubuntu 下滨嘱,新建一個(gè)目錄, 用來存放將要克隆的遠(yuǎn)程倉庫浸间,我的目錄為/home/fy/repository
在當(dāng)前目錄下輸入git clone
并粘貼剛復(fù)制的遠(yuǎn)程倉庫的路徑太雨,
git版本管理
- 版本 提交 回退
我們修改了 README.md , 在第二行增加了learn git add cmd
用 git add .
命令將當(dāng)前修改添加到暫存區(qū)
- git 分支管理
git 服務(wù)器搭建
總結(jié)
git 常用流程
git 恢復(fù)工作區(qū)內(nèi)容到之前狀態(tài)
場景1: 修改沒有提交到暫存區(qū)
git checkout --file
場景2: 修改提交到暫存區(qū)
此時(shí)如果直接使用git checkout --file
,只能回退到上次git add 時(shí)的狀態(tài)魁蒜, 不能回退到修改之前的狀態(tài)
此時(shí)需要先清空暫存區(qū)囊扳, git reset HEAD
之后再使用 git checkout --file
場景3: 修改提交到了版本庫
step 1: 先用git reset --hard HEAD^
回退到上一次版本
step2: 如果當(dāng)前暫存區(qū)是空的煤墙, 直接 git checkout --file
, 否則同場景2
刪除文件
命令 | 說明 |
---|---|
git rm file |
刪除工作區(qū)文件并添加到暫存區(qū) |
git commit -m "msg" |
將修改提交到版本庫 |
給提交添加標(biāo)簽
命令 | 說明 |
---|---|
git tag v1.0 |
給最近的一次提交打上標(biāo)簽 |
git tag v1.0 commit id |
給某個(gè)commit 打標(biāo)簽 |
git tag |
顯示所有標(biāo)簽列表 |
git show v1.0 |
顯示v1.0標(biāo)簽信息 |
git tag -d v1.0 |
刪除 v1.0標(biāo)簽 |
git push origin --tags |
推送本地未推送的標(biāo)簽 |
git push origin :refs/tags/v1.0 |
刪除遠(yuǎn)程標(biāo)簽宪拥, 先刪除本地標(biāo)簽 |
git log --decorate=full |
顯示提交歷史記錄(包括tag信息) |
git 分支管理
命令 | 說明 |
---|---|
git branch |
查看分支 |
git check out <name> |
切換分支 |
git branch <name> |
創(chuàng)建分支 |
git checkout -b <name> |
創(chuàng)建并切換到新分支 |
git merge --no-ff <name> |
將指定分支合并到當(dāng)前分支, 禁用fast forward 模式 |
git branch -d <name> |
刪除指定分支 |
git stash |
保存工作區(qū)到暫存區(qū) |
git stash apply |
恢復(fù)工作區(qū)仿野,但是stash 區(qū)內(nèi)容還在 |
git stash pop |
恢復(fù)工作區(qū),刪除stash區(qū)內(nèi)容 |
git stash list |
查看stash區(qū)的內(nèi)容 |