常用的git命令
Git命令笔记
1. 工作区,暂存区,版本库
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
1.1 需要注意的地方
当执行提交操作
git commit
时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。当执行
git reset HEAD
命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。当执行
git rm --cached <file>
命令时,会直接从暂存区删除文件,工作区则不做出改变。当执行
git checkout .
或者git checkout -- <file>
命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。当执行
git checkout HEAD .
或者git checkout HEAD <file>
命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
2. 基本命令【实现创建到提交远程仓库】
- 初始化仓库
git init [name]
- 纳入版本库
git add <file>
<file> 支持 . name *.<格式>等。- 提交到分支仓库
git commit -m '<description>'
如果想从github上拷贝项目可以使用下面的命令:
拷贝项目
git clone <远程项目> <本地仓库>
3. 文件操作命令
3.1 创建修改文件
vim <file name>
进入vim编辑器界面
输入想要的内容之后,按下 esc
退出编辑状态,按下 shift+;
输入 wq!
退出。此时文件内容已经变更。 如果输入 q!
则不会保存变更。
3.2 文件状态变更
git status -s
可以查看我们提交的文件的状态。git add .
添加我们修改后的文件.
最后使用 git commit -m "<description>"
提交
3.3 状态详细信息
git diff
查看文件变更后的详细信息。
- 尚未缓存的改动(保存后):
git diff
- 查看已缓存的改动(add后):
git diff --cached
- 查看已缓存的与未缓存的所有改动:
git diff HEAD
- 显示摘要而非整个
git diff --stat
- 使用提交后,以上命令均无内容。
3.3 流程简化
git commit -a "message"
直接提交git commit -am "message"
add后,又修改文件,提交
3.4 取消添加变更
git reset HEAD [file name]
取消已缓存的内容,使用commit后不会提交该文件,但该文件仍是变更状态。
3.5 移除
- 从 Git 中移除某个文件,必须从已跟踪文件清单中移除,然后提交。
git rm <file>
- 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项。
git rm -f <file>
- 如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除。
git rm --cached <file>
- 可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件。
git rm –r *
git mv [file origin] [file new]
命令用于移动或重命名一个文件、目录、软连接。
4. 分支管理
常用命令:
git branch
列出分支git branch <branch name>
创建分支git checkout <branch name>
切换分支git checkout -b <branch name>
创建分支并且切换git merge <branch name>
分支合并git branch -d <branch name>
删除分支
5. 查看提交历史
git log
详细历史git log --oneline
查看历史记录的简洁的版本。git log --graph
查看历史中什么时候出现了分支、合并。git log --reverse --oneline
逆向显示
更多命令:git log
6. 标签
git tag -a [标签] [历史版本号]
添加标签git log --decorate
查看标签git tag
查看所有标签
7. 远程仓库
git remote add [shortname 一般使用origin] [url]
添加远程仓库git push -u [shortname] master
提交到mastergit remote
查看远程仓库列表git fetch [shortname]
获取远程更新git merge [shortname]/master
合并git push [shortname] master
推送到远程git remote rm [shortname]
8. 其他命令
文本编辑工具 git config --global core.editor emacs
差异分析工具 git config --global merge.tool vimdiff
设置用户名 git config --global user.name "runoob"
设置邮箱 git config --global user.email test@runoob.com
查看文件内容 cat README.md