前言
Git 是 Linux 之父 Linus Trovalds,为管理 Linux 内核代码而建立的,被认为是分布式版本控制工具中的顶级水准。
虽然现在也有window版本,但较Linux系的还是相形见拙许多。这里总结些GIT的常用命令,有了这些,基本就可以脱离GUI了
一、命令行相关 学习 git 前最好先对命令行相关的东西了解下,比如:
1 2 3 4 5 6 7 8 9 10 11 12 13 cd dev //进入当前路径的devcd .. //返回上级目录cd - //返回上次目录pwd //查看当前目录ls //列出当前目录内容mkdir dev //新建一个名为dev的目录rm -rf dev //强制删除,不管目录为不为空
vim: i → Insert 模式,按 ESC 回到 Normal 模式 x →删当前光标所在的一个字符 dd →删除当前行,并把删除的行存到剪贴板里 p → 粘贴剪贴板 :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
二、初始化 每次提交都会在git log里显示作者姓名和邮箱,必须在最开始时就显示的设置好:
1 2 git config --global user.name "cheney" git config --global user.email cheney@example.com
删除配置内容:
1 2 git config --unset --global user.name git config --unset --global user.email
那么现在我们可以初始化一个新的版本库了,只需要:
1 2 3 4 git init //给当前目录做个快照 git init --bare test //或者创建一个裸仓库 test git add . git commit -m "first commit" //commit -m 连带注释一起提交
或者是直接克隆一个远程仓库:
1 git clone https://github.com/sorcerers/frontLib.git
window下面的bash控制台ls命令下中文名会乱码,在根目录下(cd /)gitetcgit-completion.bash文件中追加一行即可:
1 alias ls ='ls --show-control-chars --color=auto'
三、常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 git branch xxx 新建分枝xxx // -a list both remote-tracking and local branches //列出所有本地和远程分枝,仅branch只列出本地分枝 // -d delete fully merged branch //删除某分枝 branch -d xxx // -D delete branch (even if not merged) //强制删除,即使没有合并 // -m move/rename a branch and its reflag //重命名 branch -m xxx // -M move/rename a branch, even if target exists //会覆盖已存在的同名分枝 git add git add -A // 处理所有:添加、修改、删除 git add . // 处理添加和修改,不处理删除 git add -u // 处理修改和删除,不处理新添加文件 git commit -a //这是一个偷懒的命令:把已经在索引里,并修改的 重新 添加到 index 索引 ; git commit; git commit --amend //修改最后一次提交 此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样 git remote prune origin //删除远程分枝origin中有而本地没有的分枝,或者 git pull -p git push --all // 推送所有分枝 git push --force // 强制推送 git reset --hard // 回到上一次提交 reset HEAD, index and working tree git stash //暂存临时代码 git stash apply //应用上一个stash git stash pop //应用上一个stash,并且将其删除 git stash save xxx //以xxx名字保存 git stash show //查看详情 git stash list git stash apply stash@{1} //取出指定的 git stash clear //清空 git diff //查看当前工作目录和上次暂存内容的差异 git diff xxx //查看当前工作目录与另外一个叫'xxx' 分支的差别 查看提交历史: git log //默认按提交时间列出所有更新,新的排在上面 git log -p //展开每次提交的内容差异 ,用 -2可以显示最近两次更新,如:git log -p -2 git log --stat //显示每次更新的文件修改统计信息
结语 以上只是目前工作中比较常用的一些命令,还有许多精深的东西尚待探索