常用的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





