git 学习

https://git-scm.com/book/zh/v2

git与其它版本控制工具最大的不同:

1

git保存的是每个文件的快照,当文件有修改时,保存一份新的快照以及这个快照的索引;

不同版本都存在一份当前版本所有文件的快照;

当需要对比的时候,是对比快照;

而其他的版本控制工具,每个版本中保存的是diff文件。

2

分布式版本控制系统与集中式版本控制系统,分布式版本控制系统在每台主机上都存储了完整的版本信息,不需要网络也可以完成大部分的操作,如版本对比,局域网代码库管理等。

基本的 Git 工作流程如下:

  1. 在工作目录中修改文件。

  2. 暂存文件,将文件的快照放入暂存区域。//命令:git add 

  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。//命令:git commit 或者可以跳过步骤2,使用git commit -a 暂存和提交所有有更新的文件

  4. 推送到远程仓库。// 命令:git push [remote-name] [branch-name]

  5. 可以通过命令 git status查看当前git仓库的状态。

  6. 删除文件(本地删除后,使用git rm filename将删除信息添加到暂存区域,之后git commit就可以提交删除了)

.git 目录:

config 文件包含了项目特有的配置选项,info 目录保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。hooks 目录保存了客户端或服务端钩子脚本。

HEAD 及 index 文件,objects 及 refs 目录是 Git 的核心部分。

objects 目录存储所有数据内容

refs 目录存储指向数据 (分支) 的提交对象的指针

HEAD 文件指向当前分支

index 文件保存了暂存区域信息。

 

常用命令

  1. git add file1 // 添加file1到暂存区,git add * 可以添加当前目录下所有有修改或新增的文件到暂存区
  2. git commit -a -m "commit file" //提交暂存区的修改到git库
  3. git status // git库的状态
  4. git branch test // 创建test分支
  5. git branch -d test// 删除test分支,-d只能删除已经被当前分支合并的分支,-D可以用来强制删除
  6. git checkout test //切换到test分支
  7. git merge -m "merge branch-test to master" test //将test分支的修改merge到主线
  8. git init // 将一个目录git初始化
  9. git clone url // 从远程仓库下载
  10. git remote add origin url //将本地仓库与远程仓库关联,origin为远程仓库名,可以修改,rul是远程仓库地址,如https://github.com/testGit/project.git
  11. git push origin master // 将本地仓库同步到远程仓库
  12. git log //查看commit历史,回车往下翻,q退出,具体参数参考 git help log
  13. git diff // 比较修改或提交的文件内容,git diff --cached 可以查看暂存区与上次提交之间的差别
  14. git pull url 分支名 // 将url对应的git库的某个分支合并到当前分支中 (如果没有url和分支名,默认clone源为远程仓库)
  15. git tag 别名 commit号 // 给某个commit号码取别名,方便操作
  16. git reset  --hard 6fcfc89(commit号码前8位,可以使用git reflog查看)或者 git reset --hard HEAD^ //回退git库到某个版本或者上一个版本(^标示向前一个,^^标示向前两个)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值