《ProGit》的内容摘要,Git的常用命令。
git常用命令
一、开始一个工作区(参见:git help tutorial)
clone克隆仓库到一个新目录init创建一个空的 Git 仓库或重新初始化一个已存在的仓库
二、在当前变更上工作(参见:git help everyday)
add添加文件内容至索引mv移动或重命名一个文件、目录或符号链接reset重置当前 HEAD 到指定状态rm从工作区和索引中删除文件
三、检查历史和状态(参见:git help revisions)
bisect通过二分查找定位引入 bug 的提交grep输出和模式匹配的行log显示提交日志show显示各种类型的对象status显示工作区状态
四、扩展、标记和调校您的历史记录
branch列出、创建或删除分支checkout切换分支或恢复工作区文件commit记录变更到仓库diff显示提交之间、提交和工作区之间等的差异merge合并两个或更多开发历史rebase在另一个分支上重新应用提交tag创建、列出、删除或校验一个 GPG 签名的标签对象
五、协同(参见:git help workflows)
fetch从另外一个仓库下载对象和引用pull获取并整合另外的仓库或一个本地分支push更新远程引用和相关的对象
命令 git help -a 和 git help -g 显示可用的子命令和一些概念帮助。
查看 git help <命令> 或 git help <概念> 以获取给定子命令或概念的
帮助。
详情请见: progit
Git常用命令及定义
一、设置用户(分布式)
git config --global user.name "your name"
git config --globa user.email "your email.com"
全局使用该用户名及用户邮箱
二、创建目录
mkdir new_folder_name
创建一个用于跟踪的新文件夹或者使用系统自带的文件管理系统创建一个新的文件夹
三、管理
git init
将当前的目录交给git管理,即使我们刚才创建的new_folder_name文件夹里的文件处于分布式版本控制系统git的监控之下
四、添加库
git只能够管理纯文本的文件,对于图片、视频等二进制形式存储的文件则无法跟踪(最好使用UTF8进行编码)
git add file_name.md 将file_name.md 文件添加到监管库
git commit -m "add a new file" 引号内为提交的说明
git commit -a 把所有已经跟踪的文件暂存并提交,可以跳过git add的步骤
git add . 将发生变化的所有文件添加到监管库中
git add *.md 将所有后缀为.md 文件添加到库 
commit 可以一次提交很多的文件,所以可能有很多的add ,但是只需要一个commit即可
五、查看
git status 查看当前的状态
git diff 查看发生了哪些变化
git diff --cached 查看已经暂存的文件与上次提交时的差异
git log 查看提交记录
git log --pretty=oneline 提交记录的简洁说明
六、版本回退
HEAD表示的是当前版本(其实是一个指针),HEAD^ 表示上一个版本,HEAD^^表示的是上上一个版本,依次类推,HEAD~100,会退到100个版本
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 3628164 回退到3628164版本ID所对应的位置
git reflog 查找版本ID或者命令历史
七、工作区和暂存区
工作区即为电脑的工作目录,暂存区存在于.git文件夹中,执行 git init 之后 工作目录中就会出现该文件夹,但是默认情况下,.git是隐藏的文件夹–主要存储head指针和提交记录,git commit执行后,就会存储在暂存区
git管理的是修改而不是文件本身
八、撤销修改
git checkout --file_name.txt 丢弃工作区的修改
git reset HEAD file 撤销暂存区修改
九、删除文件
rm file 删除工作区文件
十、SSH连接的建立
ssh-keygn -t rsa -c "email" 该命令执行后会有两个文件产生,id_rsa私钥,不可泄露id_rsa.pub公钥,确认身份,可以在多处添加,分别对应着多台电脑,我们可以将此公钥添加到github,如此以来,便可以实现ssh连接,安全又方便。
十一、添加远程关联
前提是已经在github上面有同名仓库
git remote add origin git@github.com:user/rename.git
git push -u origin master 把本地内容推送到远程 -u用于关联本地和远程的仓库(第一次使用,之后可以去掉-u)
十二、克隆
git clone git@github.com:user/rename.git //使用ssh连接无需密码,速度较快,但是http连接每次都要输入密码和用户名,比较麻烦
git remote -v
git remote rm origin
git remote add origin git@github.com:user/rename.git
git push origin
十三、分支建立与删除
git checkout -b dev 创建dev分支并切换到dev
git checkout dev 切换到dev分支
git branch 查看当前分支
git merge dev 合并dev到当前分支,采用FF方式
git branch -d dev 删除dev分支
git merge --no-ff -m "merge no ff ways" dev 不采用FF方式合并dev到当前的分支
git rebase master server 在master分支上重演server(发布到远程后,不要进行此操作)
十四、bug分支
git stash  隐藏当前的工作现场,适用于当前的工作还没有完成的情况
git stash list 查看没有完成的工作现场
git stash apply 恢复,不删除 stash的内容
git stash pop 恢复并且删除stash
git stash drop 删除stash
十五、从远程抓取最新的代码
git pull
git branch -set-upstream branchname origin/branchname
十六、创建标签
git tag v1.0 创建tag,在最新的commit上
git tag 查看tag
git tag -a name -m "info"