曹阳的博客 仅用于学习和分享

ProGit

2019-08-18

《ProGit》的内容摘要,Git的常用命令。

git常用命令

一、开始一个工作区(参见:git help tutorial)

  1. clone 克隆仓库到一个新目录
  2. init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库

二、在当前变更上工作(参见:git help everyday)

  1. add 添加文件内容至索引
  2. mv 移动或重命名一个文件、目录或符号链接
  3. reset 重置当前 HEAD 到指定状态
  4. rm 从工作区和索引中删除文件

三、检查历史和状态(参见:git help revisions)

  1. bisect 通过二分查找定位引入 bug 的提交
  2. grep 输出和模式匹配的行
  3. log 显示提交日志
  4. show 显示各种类型的对象
  5. status 显示工作区状态

四、扩展、标记和调校您的历史记录

  1. branch 列出、创建或删除分支
  2. checkout 切换分支或恢复工作区文件
  3. commit 记录变更到仓库
  4. diff 显示提交之间、提交和工作区之间等的差异
  5. merge 合并两个或更多开发历史
  6. rebase 在另一个分支上重新应用提交
  7. tag 创建、列出、删除或校验一个 GPG 签名的标签对象

五、协同(参见:git help workflows)

  1. fetch 从另外一个仓库下载对象和引用
  2. pull 获取并整合另外的仓库或一个本地分支
  3. push 更新远程引用和相关的对象

命令 git help -agit 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"

参考: Git个人整理总结 Git常用命令清单 ProGit第一章 ProGit第二章


Similar Posts

上一篇 Markdown

下一篇 ProGit_test

Content