Git学习笔记

.git/objects/06/e21bb0105e2de6c846725a9a7172f57dd1af96 workspae项目的第一个版本(树对象)
.git/objects/56/0a3d89bf36ea10794402f6664740c284d4ae3b test.txt文件的第一个版本(git对象)

.git/objects/9d/74ec4055e0f1edc1921d749c250380ca7b5ebd workspae项目的第二个版本(树对象)
.git/objects/c3/1fb1e89d8b6b3ef34cdb5a2f999d6e29b822ba test.txt文件的第二个版本(git对象)
.git/objects/ea/e614245cc5faa121ed130b4eba7f9afbcc7cd9 new.txt文件的第一个版本(git对象)

git操作最基本的流程
创建工作目录 对工作目录进行修改
git add ./
git hash-object -w 文件名(修改了多少个工作目录中的文件 此命令就要被执行多少次)
git update-index …
git commit -m “注释内容”
git write-tree
git commit-tree

git高层命令(CRUD)
git init 初始化仓库
git status 查看文件的状态
git diff 查看哪些修改还没有暂存
git diff --staged 查看哪些修改以及被暂存了 还没提交
git log --oneline 查看提交的历史记录
git add ./ 将修改添加到暂存区
git rm 文件名 删除工作目录中对应的文件 再将修改添加到暂存区
git mv 原文件名 新文件名 将工作目录中的文件进行重命名 再将修改添加到暂存区
git commit
git commit -a
git commit -a -m 注释
将暂存区提交到版本库

git高层命令(分支)
git branch 显示分支列表
git branch 分支名 创建分支
git checkout 分支名 切换分支
git branch -D 分支名 强制删除分支

切换分支

最佳实践: 每次切换分支前 当前分支一定得是干净的(已提交状态)
坑: 
    在切换分支时 如果当前分支上有未暂存的修改(第一次) 或者 有未提交的暂存(第一次)
       分支可以切换成功  但是这种操作可能会污染其他分支
动三个地方
    HEAD
    暂存区
    工作目录

后悔药

工作区
    如何撤回自己在工作目录中的修改 : git checkout --filename
暂存区
    如何何撤回自己的暂存  : git reset HEAD filename
版本库              
    如何撤回自己的提交    : git commit --amend
        1.注释写错了,重新给用户一次机会改注释

reset

git log    :  
git reflog : 主要是HEAD有变化 那么git reflog机会记录下来
三部曲
    第一部: git rest --soft HEAD~  (--amend)  
        只动HEAD (带着分支一起移动)      
    第二部: git reset [--mixed]   HEAD~ 
        动HEAD   (带着分支一起移动)  
        动了暂存区
    第三部:  git reset --hard  HEAD~   
         动HEAD   (带着分支一起移动)  
         动了暂存区
         动了工作目录

checkout

git  checkout commithash   &   git reset --hard commithash         
    1.  checkout只动HEAD    --hard动HEAD而且带着分支一起走
    2.  checkout对工作目录是安全的   --hard是强制覆盖工作目录

git checkout  commithash
git checkout --filename  
      相比于git reset --hard  commitHash --filename  
      第一  第二步都没做
      只会动了工作目录
git checkout  commithash  <file>    
      将会跳过第 1 步 
      更新暂存区 
      更新工作目录   

路径reset

git reset HEAD filename     (reset 将会跳过第 1 步)    
    动了暂存区

远程分支

远程跟踪分支

本地分支

正常的数据推送 和 拉取步骤
    1. 确保本地分支已经跟踪了远程跟踪分支
    2. 拉取数据 : git pull
    3. 上传数据: git push
    
一个本地分支怎么去跟踪一个远程跟踪分支
    1. 当克隆的时候 会自动生成一个master本地分支(已经跟踪了对应的远程跟踪分支)
    2. 在新建其他分支时 可以指定想要跟踪的远程跟踪分支
            git checkout -b 本地分支名 远程跟踪分支名
            git checkout --track  远程跟踪分支名 
    3. 将一个已经存在的本地分支 改成 一个跟踪分支   
            git branch -u 远程跟踪分支名     

团队协作

1. 项目经理初始化远程仓库
    一定要初始化一个空的仓库; 在github上操作
2. 项目经理创建本地仓库
    git remote 别名 仓库地址(https)
    git init ; 将源码复制进来
    修改用户名 修改邮箱
    git add
    git commit 
3. 项目经理推送本地仓库到远程仓库
    清理windows凭据
    git push  别名 分支  (输入用户名 密码;推完之后会附带生成远程跟踪分支)
 4. 项目邀请成员 & 成员接受邀请
      在github上操作  

5. 成员克隆远程仓库
    git clone  仓库地址 (在本地生成.git文件 默认为远程仓库配了别名 orgin)
                只有在克隆的时候 本地分支master 和 远程跟踪分支别名/master 是有同步关系的
6. 成员做出贡献
    修改源码文件
    git add 
    git commit 
    git push  别名 分支 (输入用户名 密码;推完之后会附带生成远程跟踪分支) 
    
7. 项目经理更新修改
    git fetch 别名 (将修改同步到远程跟踪分支上)
    git merge 远程跟踪分支

冲突

git本地操作会不会有冲突?
    典型合并的时候
git远程协作的时候 会不会有冲突?
    push
    pull            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值