git 常用命令与应用

记录一下git 常用命令,以及相关应用场景解决方案

2020-11-06

  1. 本地分支关联到远程命令错误
    $> git branch --set-upstream-to=origin/Ft_Hboot_1.1.0 Ft_Hboot_1.1.0
    
  2. 新增其他命令:分支名称修改

2020-11-12

  1. 暂存修改git stash, 在不想commit时使用,或者没有完成,需要该其他功能(修复bug)
  2. 已经commit后,又想把现在修改的合并到之前的修改。

基础命令

// 配置本地账户信息
$> git config --global user.name '[name]'
$> git config --gloabl user.email '[email]'

// 初始化项目
$> git init              // 本地初始化一个git 项目
$> git clone [url]          // 克隆一个远程仓库,比如GitHub
$> git remote add origin [url]      // 关联到一个远程仓库 

// 更改保存
$> git add              // 将所有的改动计入暂存区
$> git commit -m '[desc msg]'       // 将所有更改加入版本历史,并说明
$> git pull             // 存远程分支拉取更改
$> git push                  // 将本地更改提交到远程仓库

// 分支管理
$> git branch [name]         // 创建一个分支
$> git checkout [branch-name]      // 切换到另一个分支
$> git merge [branch-name]             // 合并指定分支到当前分支上
$> git branch -d [branch-name]            // 删除一个指定分支
$> git branch -m loadName newName              // 修改制定分支的分支名称

// 修改暂存
$> git stash save                // 保存当前所有修改到暂存区
$> git stash pop stash@{**}           // 取出暂存区的修改到当前分支 stas@{0} 删除记录
$> git stash apply stash@{**}            // 取出暂存区修改到当前分支, 记录还在
$> git stash list                      // 查看所有存入的记录

// 合并当前修改到之前commit的提交记录中
$> git commit --amend            // 会有类似vi 编辑一样,可以修改commit msg

应用场景

在日常工作中,经常会遇到的问题记录。

忽略不需要版本记录的资源

创建.gitignore 文件,

// win 环境下创建文件

$> echo "">>.gitignore

示例为react项目中.gitignore文件

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

关联远程仓库

关联远程仓库,有两种情况:

手动创建一个GitHub远程仓库。

  1. 本地初始化后远程关联

    $> git init
    
    // 远程仓库创建完成后,进行关联
    $> git remote add origin git@github.com:ngd-b/Git-Project.git
    // 关联后,切换到远程的分支
    $> git checkout main
    

    现在GitHub上新建的主分支改为main,不是master

  2. 克隆一个远程的仓库

    $> git clone git@github.com:ngd-b/Git-Project.git
    
关联远程分支

正常如果是直接克隆或者关联到了远程仓库,从远程拉取对应的分支即可。

  1. 拉取远程分支到本地

    拉取分支时,保证本地仓库与远程时同步。即通过git pull

    然后查看远程仓库有哪些分支,git branch -a ; 分支Ft_Hboot_1.1.0 是在github上手动创建的。

    $> git pull
    
    $> git branch -a 
    
    $> git checkout -b Ft_Hboot_1.1.0 origin/Ft_Hboot_1.1.0 
    

    现在建立了连接,可通过git pullgit push 测试。

    新建second.txt 编辑并提交

    $> echo 'git checkout -b Ft_Hboot_1.1.0 origin/Ft_Hboot_1.1.0'>>second.txt
    
    $> git add -A
    $> git commit -m 'add second.txt'
    $> git push
    

    默认创建的本地分支和远程分支保持名称相同。

  2. 关联本地分支到远程分支 - 远程不存在分支时

    本地创建一个分支,切换到新建分支;新增文件first.txt,保存本提交到该分支。

    $> git branch Ft_Hboot_1.0.0              
    $> git checkout Ft_Hboot_1.0.0
    
    $> git add -A
    $> git commit -m 'feat:add first.txt'
    
    $> git pull
    

    直接操作git pullgit push 时,提示错误

    在这里插入图片描述

    按照错误提示,git push 提示

    $> git push --set-upstream origin Ft_Hboot_1.0.0
    
  3. 关联本地分支到远程分支 - 远程已经存在分支时

    确保本地创建的分支和你当前主分支head信息一致也就是如果本地分支创建比较早,没有用,主分支后续做过更新。

    需要进行合并。

    $> git merge main
    

    现在开始在本地分支工作,创建内容。

    本地 仓库创建分支Ft_Hboot_1.1.0 , 测试git pull 拉取不到内容(虽然远程也存在同名的分支);

    $> git checkout Ft_Hboot_1.1.0
    $> git pull
    
    $> echo 'git checkout Ft_Hboot_1.1.0'>>third.txt
    

    远程如果存在你想push的分支,那就建立关联,按照git pull 提示

    $> git branch --set-upstream-to=origin/Ft_Hboot_1.1.0 Ft_Hboot_1.1.0
    
分支合并

如上,我们创建一个分支信息,并且新增了一些文件,并提交到了远程仓库。

现在我们在分支Ft_Hboot_1.0.0完成了任务,项目部署上线。那么该分支代码最后需要合并到主分支.

可以看到切换到主分支后,是看不到分支Ft_Hboot_1.0.0 修改的部分的。

$> git branch
$> git checkout main

$> git merge Ft_Hboot_1.0.0

我们已经切到主分支,现在合并分支Ft_Hboot_1.0.0到主分支。
git merge Ft_Hboot_1.0.0

合并分支一般由仓库管理者合并,本地合并或者线上合并,本地合并的话需要push到远程;

其他

参考

Git 教程- 廖雪峰

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heroboyluck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值