Git 使用总结

Git 使用总结

1. Git 初始化

  • 查看git配置
git config --list 
  • 配置使用git仓库的人员姓名和 email
git config --global user.name 'Jay'
git config --global user.email 'jay@126.com'

2. Github Gitlab SSH 公钥来进行授权

  • Mac
    • 先查看是否存在
    $ cd ~/.ssh
    $ ls
    id_rsa		id_rsa.pub(公钥贴到github)
    
    cat ~/.ssh/id_rsa.pub
    
    • 如果没有 创建 SSH Key
    $ ssh-keygen -t rsa -C "youremail@example.com"
    
    • 测试是否成功
    ssh -T git@github.com
    
    # (成功了) Hi var-chx! You've successfully authenticated, but GitHub does not provide shell access.
    # (失败了) Permission denied (publickey)....
    
  • win 10
    • 先看是否存在
    C:\Users\XXX\.ssh
    
    • 没有 和 Mac 一样

3. 常用Git命令

  • 创建 tag: git tag v1.1.3 (git tag -a v1.1.2 -m “我是备注”)

  • 查看分支:git branch

  • 创建分支:git branch

  • 切换分支:git checkout

  • 创建+切换分支:git checkout -b

  • 合并某分支到当前分支:git merge

  • 抓取(更新本地的 远端分支): git fetch origin dev

  • 撤销提交: git reset --hard 10bb4

  • 抓取: git fetch 相当于是从远程获取最新的版本到本地, 不会自动 merge

  • 删除分支:git branch -d 注意:删除当前分支 需要切换到其他分支 如果要删除的分支没有和当前的分支合并 会提示的 删除失败 真要删除 用 -D

4. 关于 merger 的操作

  • 一般操作开发分支 (dev) 上的代码达到上线的标准后, 要 merge 到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
  • 遇到冲突
git checkout dev
git pull
git checkout master
git merge dev
// 遇到冲突  要解决冲突
git add .
git commit -m "...."  // 或者使用  git merge --continue
git push -u origin master

关于 rebase

  • 使用场景
    • 你昨天从master 上切出来的 dev 一直在开发
    • 今天你发现 master 分支 别人有新的提交了
      • 这些代码你不用对你没有影响 忽略就行 只管子在 dev 开发就行
      • 别人的 代码 你想用 或者对你有影响 这时就可以优雅的使用 rebase
      git rebase master
      
      • 或者使用 (更加细粒度的 rebse) (如果 master 别人提交了5次 你只想合并他的钱三次 提交)
      // git rebase   [startpoint](不包含)  [endpoint](包含)  --onto  [branchName]
      
      git  rebase   90bc0045b^   5de0da9f2   --onto master  // 区间为前开 后闭 (]
      
      
  • 遇到冲突 和 merge 的解决方法一样

关于 stash 暂存

  • 使用场景

    • 你正在你的分支开发 有人让你切其他分支 此时你又不想 git add. git commit 你就可以 使用 git stash 暂存一下
    • 暂存后 就 切分支 做其他事情了 等做完了 在回到你的 dev 分支 恢复一下 就 和暂存前一样了 git pop
  • 常用指令

    • git stash save “save message” : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
    git stash 
    or git stash save '我是备注标示'
    
    • git stash list :查看stash了哪些存储

    • git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

    • git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p

    • git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

    git stash apply stash@{0} // 最新的
    git stash apply stash@{1}
    git stash apply stash@{2}
    
    // 也可以使用功能
    
    git stash apply 0
    git stash apply 1
    git stash apply 2
    
    • git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
    git stash pop stash@{0} // 最新的
    git stash pop stash@{1}
    git stash pop stash@{2}
    
    // 也可以使用功能
    
    git stash pop 1
    git stash pop 2
    git stash pop 0
    
    • git stash drop stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲ :丢弃stash@{num}存储,从列表中删除这个存储

    • git stash clear :删除所有缓存的stash

  • 特别注意

    • 新增的文件 直接 stash 是不生效的 但是 新增的文件也不影响你切分支 只是切分支后不要吧 新文件也提交了 就好

    • 因为 新加的文件 不在 git 的版本控制里 要想 也 stash 要先执行 一下 git add .

    • 需要注意 git add 和 git stash 没有必然的关系

重置 操作

  • 清空 工作区 和暂存区
git reset .
  • merge 有冲突了 想 重置为 merge 之前
上一篇:webpack(11)配置文件分离为开发配置、生成配置和基础配置


下一篇:三年半烧掉88亿、4个月市值暴跌7成,“生鲜电商第一股“每日优鲜首份财报不及格