基本指令
- 创建git用户:
git config --global user.name "xxx"
- 设置邮箱:
git config --global user.email "xxx@qq.com"
- 查看git用户:
git config user.name
- 查看邮箱:
git config user.email
git文件三状态
Untracked状态
Unstaged状态(包括Unmodified状态 Modified状态)
Staged状态
1.add完后:从Untracked状态->Staged状态
2.commit完后:从Staged状态->Unmodified状态
3.edit完后:从Unmodified状态->Modified状态(此时可以add到Staged状态)
4.remove完后:从Unmodified状态->Untracked状态
- 查看版本库状态:
git status
git status -s #缩略版
- 把文件添加进版本库(staged):
git add x.py
- 一次性添加文件夹中所有未被添加的文件
git add .
- 提交这次的改变, 并在 -m 自定义这次改变的信息:
git commit -m "xxx自定义信息"
- 从unstaged状态add并且commit文件的合并操作:
git commit -am "xxx自定义信息"
- 查看文件修改的不同(Unstaged状态下):
git diff
- 查看文件修改的不同(staged状态下):
git diff --cached
- 查看文件修改的不同(所有状态下):
git diff HEAD
- 查看提交日志:
git log
- 查看提交日志缩减版(每个日志一行显示):
git log --oneline
- 补充commit,不改变提交日志(但是改变提交id),做了add等操作后:
git commit --amend --no-edit
- 从staged状态返回modified状态:
git reset xxx(文件)
- 从当前版本回退到之前某一个版本:
git reset --hard HEAD^ #^是回退一个版本,^^是回退两个版本,以此类推,没有^是回到当前版本,即若在当前版本下add后进入staged状态也可回到unstaged状态;也可以将HEAD换为相应版本号
- 查看之前的commit及任何有关版本切换的操作日志
git reflog
- 针对单个文件的回到从前(其他文件并不会变化):
git checkout xxx(文件版本号) -- xxx(文件名)
- 创建一个分支:
git branch xxx(分支名)
- 切换到某个分支:
git checkout xxx(分支名)
- 创建一个分支并且切换到该分支:
git checkout -b xxx(分支名)
- 查看分支:
git branch(*在哪个分支前就代表处在哪个分支)
- 删除分支:
git branch -d xxx(分支名)
- 查看日志(包含分支版本):
git log --oneline --graph
- 合并分支,将dev分支合并到master分支:
git merge --no-ff -m "xxxxxxxx" dev
-rebase合并分支(比较危险,把master分支基于dev分支的修改合并):
git rebase dev
- 暂存修改(在内存中开辟出一块缓冲区保存这次对文件的修改,执行完后回到未修改的状态):
git stash
- 查看stash中的缓存:
git stash list
- 恢复暂存:
git stash pop
与github的关联
- 建立新的版本库,并且关联到github上:
echo "#git-demo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/github用户名/git-demo.git
git push -u origin master
- 关联到已建立的版本库(github上已有该版本库):
git remote add origin https://github.com/github用户名/git-demo.git
git push -u origin master