Git简单命令
Git bash下输入
git config --help 获得config帮助文档
git config --global user.name yourname 设置和修改名字
git config --global user.email yourmail@mail.com 设置和修改邮箱
git config --global --add user.name yournewname 添加新的名字
git config --global --add user.email yournewmail@mail.com 添加新的邮箱
git config user.name 获得当前用户名
git config user.email 获得当前邮箱
git config --global --unset user.name yourname 删除一个用户名
git config --global --unset user.email yourmail@mail.com 删除一个邮箱
git config --list --global 查看所有的用户名,邮箱等配置
git init my_repository 初始化仓库(自动创建.git文件)
方式二: cd my_repository 然后 git init 效果遇上上面相同
git init --bare my_bare_repository 初始化bare仓库(创建后没有.git文件)
git cd c:/fileName 定位到某一文件夹
git ls 查看当前文夹所有的文件
git ls -l 查看当前文夹所有的文件 包含时间等信息
cd ../.. 退回到默认repository目录
cd ../ 退回一层,(类似于电脑中按了返回键)
mkdir yourFilename 创建一个文件夹
git clone old_reposity/new_reposity 克隆仓库
git stauts 查看当前文件夹状态
git add fileName 把fileName这个文件添加到暂存区
git commit -m "initial commit" 把暂存区的文件提交的历史区
touch newFile 创建新的文件
vim fileName 修改文件的内容
按 i 开始插入 Esc停止插入,停止插入后按shift + ; 输入 wq保存并退出,输入 q! 不保存退出
git rm fileName 删除工作区和暂存区中的文件引用
git rm cached fileName 仅删除暂存区中的文件引用
git reset HEAD fileName 还原某一文件的引用
git checkout fileName
clear 清空git dash
git mv file_a file_b 移动或重命名
.gitignore 命令的使用
*.type 忽略扩展名为type的文件
!notignorethisone.type 前面加!表示不忽略这个文件
dir/ 忽略dir文件夹
filename 忽略某一文件
git config --global core.autocrlf (换行符三个值true,input,false 参考链接:http://blog.csdn.net/feng88724/article/details/11600375)
git branch newBranck 创建新的分支
git checkout newBranck 在这个新的分支上进行工作
查询历史记录(log)
git log --all 查询所有历史记录
git log 的一些参数
--oneline 只显示一行 用法(git log --oneline)
--decorate commit引用的信息如tag信息
--graph 图形化地表示
--
git tag "firstTag" b83e2b3 为这个b83e2b3 commit设置名为firstTag的tag
git tag 查看tag
git config --global alias.abc "log --oneline --decorate --graph --all" 为""中的命令起了一个abc的别名
git checkout -b new_branch git branch new_branch 和 git checkout new_branch的组合
git stash save -a "stash first" 暂存区保存
git stash list 查看保存的目录
git stash pop -index stash@{0} 把stash中的内容恢复 加上--index参数表示同时恢复到暂存区(实测加不加--index没有发现区别,希望懂得人留言告诉我,谢谢)
git stash apply stash@{0} 把stash中的内容恢复,不会删除stash,pop会删除stash
git stash drop stash@{0} 手动删除stash
git stash clear 一次清理多个stash
以上 pop,apply,drop 如果后面没有加stash@{},默认对stash@{0}进行操作.
git merge another_branch 把another_branch分支与当前分支合并
git merge --abort 取消合并,什么时候使用不太清楚
git show 显示提交记录,后面可以使用的参数有master,HEAD,哈希值,master^1,tag
git diff 查看工作区与暂存区的区别
git diff --cached 查看暂存区和历史区的区别
git diff master^1 比较工作区和其他commit的差异
git diff commit1 commit2 两个commit进行比较
常用参数
-- fileName 只比较这个文件在两个commit中的差异
--color-words 显示不一样的文字用颜色区分
--word-diff 显示不一样的文字用{}区分
撤销和修改:
git checkout -- fileName 撤销工作区的修改(也就是用暂存区覆盖工作区)
git checkout commit/branch/tag -- fileName 用历史的某一commit还原当前的工作区和暂存区
git reset commit还原暂存区
git reset --hard commit还原暂存区和工作区
--mixed commit还原暂存区(默认情况就是--mixed)
--soft commit不进行还原,尽把HEAD和分支引用指向当前的commit(hard,mixed也进行指向)
git revert 产生新的提交,覆盖之前的提交产生的修改
git clean -n 查看没有使用的文件
git clean -f 删除文件
git clean -n -X(大写) 加上大写X可以查看.gitignore忽略的文件保留其他的文件,不加-X将默认不查看.gitignore中忽略的文件
git clean -f -X 删除 .gitignore 忽略的文件
上面两个行命令如是用小写x,将忽略.gitignore文件的影响
git commit --amend
git rebase 线性合并查看与merge的区别 http://gitbook.liuhui998.com/4_2.html
git reset --hard commit 可以还原到这个commit
git reflog (加上-10,显示近十条的记录)可以查看所有分支的所有操作记录(包括commit和reset的操作,及已经被删除的commit记录,git log则不能察看已经删除了的commit记录)