提交task git操作

本文详细介绍了git的基础配置、全局参数设置、github个人令牌生成、基本操作流程、gitstatus的含义、提交问题、rebase与合并、解决冲突、gitpull/push策略,以及如何使用gitstash管理和强制推送。
摘要由CSDN通过智能技术生成

目录

git配置

github全局配置参数

github生成个人令牌

git基本操作

git status

git提交不成功情况

本地有其他修改文件没提交

将几次提交合并成一次

git rebase后无法push到远程分支的解决

git rebase master的文件解决冲突

提交到总项目上

git保持fork仓库的更新

git查看远程仓库的log

只提交一次commit到分支上

拉取远程代码并且不覆盖本地修改的代码

git pull

git stash

git push


一. git配置

1. github全局配置参数

  • git config --global -l : 查看所有全局配置
  • git config --global http.version HTTP/2.0 : 修改全局HTTP协议版本
  • git config --global unset http.proxy :取消代理

2. github生成私人Token

在github上生成Token是一种安全的方式,以下是步骤:

1. 登录github账户,点击右上角头像,选择“Settings”(设置)

2. 在左侧导航栏,找到“Developer Settings”(开发者设置)-> Personal Access Tokens,选择Tokens(Classic)

3. 配置令牌 -> Generate Token(生成令牌)

  • 为token赋予权限,如果从命令行操作仓库,至少选中repo
  • admin:org(组织管理)

4.复制令牌:一旦生成令牌,将只显示一次。一定要复制生成的令牌并妥善保存,我们将无法再次看到此令牌的内容

3. git基本操作

git分为三个区:

  • 工作区:存放文件的地方
  • 暂存区:工作区的变更,提交到暂存区
  • 版本库:暂存区的内容,提交到版本库

4. git status

有两种颜色:

        -红色:工作区变化了,但是没有提交到暂存区
        -绿色:已经提交到暂存区,没有提交到版本库
        -没有:所有东西都在版本库中了[所有文件都被git管理起来了]

把文件移到暂存区

1. 把工作区变更的文件(红色的文件)提交到暂存区

  • git add .   # 提交所有变更的文件
  • git add 文件名 # 指定某个文件提交

2. 把暂存区的文件提交到版本库(作为一个版本):

  • git commit -m "注释" 

二. git提交不成功情况

1. Operation Time Out连接超时 | 服务器无响应

1. git config --global --unset http.proxy 先取消代理,试一下

2. 如果还不行,尝试将远程url从http替换成git@github.com,然后再试一下

  • git remte -v
  • git remote set-url origin <新的远程地址>

2. 本地有其他修改文件没提交

例如:

  1. 错误:不能变基:您有未暂存的变更。
  2. 错误:请提交或贮藏修改。

git stash可以将那些修改过但是不准备提交的多余文件暂存到一个位置,

git stash pop可以将这些文件从暂存处出来

3. 将几次提交合并成一次

git log可以看到提交的日志以及commit id

1. 确定需要合并的提交次数

git rebase -i HEAD~3

上述命令的HEAD~3就是表示想对HEAD前的最近3次提交进行rebase

2. 编辑交互式rebase文件:

  1. 执行上述命令后,Git 会打开一个文本编辑器,显示如下内容:

    pick abc123 Your commit message 1 
    
    pick def456 Your commit message 2 
    
    pick 789ghi Your commit message 3
  2. 将需要合并的提交的前面的单词 pick 改为 squashs。例如,如果你想将第二次和第三次提交合并到第一次提交,可以这样修改:

    pick abc123 Your commit message 1 
    
    s def456 Your commit message 2 
    
    s 789ghi Your commit message 3

  3. 保存并关闭编辑器: 修改完文件后,保存并关闭编辑器。
  4. 编辑合并提交的信息: Git 会再次打开一个编辑器,允许你编辑合并后的提交信息。你可以保留第一个提交的信息,也可以编辑为新的信息。

  5. 保存并关闭编辑器: 保存并关闭编辑器。

  6. 完成 rebase: 至此,你已经成功将多个提交合并为一个提交。如果一切正常,Git 将会告诉你 rebase 成功。

  7. 推送到远程仓库: 如果你的提交已经推送到远程仓库,你可能需要使用 --force 选项强制推送。

    git push origin branch-name --force

    注意:使用 --force 选项会覆盖远程仓库的提交历史,慎用。

请记住,避免在公共分支上执行 rebase 操作,因为它会改变提交历史,可能会对共享的历史造成混淆。如果你在公共分支上工作,最好使用 merge 而不是 rebase

4. git rebase master的文件解决冲突

链接:git rebase master-CSDN博客

操作步骤

  1. 先保证本地的开发分支和master分支都是最新的code
  2. 切换到你现在开发的分支,在git命令中输入:git rebase origin/master
  3. 这样就会把你现在正在开发的分支中已经写好的代码与最新的master分支的代码合并在一起
  4. 合并的过程中可能会涉及很多冲突需要解决。
  1. 输入 git status 显示冲突的文件,然后找到那个文件解决冲突。git status如果不显示冲突文件,但又处于rebase状态,输入git rebase --skip
  2. 输入git add [文件名],这样才算解决一个冲突,
  3. 输入 git rebase --continue ,继续git status …
  4. 直到所有的冲突全部解决
  1. 解决完冲突后,推送到远程库。>git push --force(一个人开发时候用)
  2. 完成

如何终止rebase操作:

输入 git rebase --abort ,回到最初的状态,前面解决的所有冲突都会恢复到以前的状态

如何查看rebase完成了呢?

git branch看看自己是否在开发分支,如果回到开发分支,就是rebase完成。

如果rebase没有完成,git branch不会在开发分支,会在rebase新开的一个临时的分支里面。

git branch -v 查看自己的分支,以及自己的分支与远程分支落后多少个文件,如果落后了就git pull,解决冲突。

git push失败,可能是本地这个分支有一些文件落后远程分支,需要git pull

三. 提交到总项目上

自己的分支修改完毕了而且通过了critic的话就可以请求合并了

回到自己的浏览器中的仓库主页,在总的项目里面找到申请合并(创建合并请求),之后申请合并点击确认确认确认就请求合并成功了。

1. git保持fork仓库的更新

因为如果自己的fork仓库一直不更新的话,将某一分支代码提交到分支上去这个分支可能会涉及到很多次commit,所以这时候应该将自己的fork仓库更新到最新,因为自己写的代码已经commit到本地了,所以这时候如果自己的fork仓库没有什么很重要的东西的话,其实是可以直接删除掉,再重新fork一个,如果仓库名称不变的话,就也不需要重新配置远程仓库。

2. git查看远程仓库的log

git log remotes/fany/task/T28444 –oneline

不知道远程分支名字的话:git branch -a

3. 只提交一次commit到分支上

假设我们处在A分支想将B分支最新的一次提交提交到A分支上,可以在A分支上输入:

git cherry-pick B

后面可以接分支名字也可以接commit编号

四. 拉取远程代码并且不覆盖本地修改的代码

  • git pull origin dev-my //有冲突则合并冲突
  • git add .
  • git commit -m "合并"
  • git push origin dev-my //大功告成

链接:关于git的使用

  1. git分支新建提交代码
  2. 已有分支,拉取主分支代码到自己的分支(会覆盖本地代码)
  3. 拉取远程代码并且不覆盖本地修改的代码

1. git pull

  1. 更多请阅读:git pull命令 -Git教程
  • ​​​​​​​git pull <远程主机名> <远程分支名>:<本地分支名>

比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样

git pull origin next:master

如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:

git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再执行git merge。

  1. git fetch origin
  2. git merge origin/next

2. git stash

链接:Git stash 暂存区详解——迹忆客

git stash暂存我们对工作副本做出的修改,以便我们可以处理其他事情,处理完其他事情再回来应用他它们。

如果我们要快速切换上下文并处理其他事情,当时我们代码正改了一部分,还没有准备好对其进行提交。那么这种情况下 git stash 就很有用了。(注意,stash 位于本地 Git 仓库的;推送时,stash隐藏的修改不会传输到服务器。

  1. git stash
  2. git status
  3. git stash pop

默认情况下,git stash pop将重新应用最近创建的存储:stash@{0}

我们还可以通过指定标识符选择要重新应用的 stash,例如:$ git stash pop stash@{2}

  1. git stash drop

$ git stash drop stash@{1}

Dropped stash@{1} (17e2697fd8251df6163117cb3d58c1f62a5e7cdb)

  1. git stash list

3. git push

git push <远程主机> <本地分支名>:<远程分支名>

git push critic task/T28288:task/T28288

强制推送:这个分支只属于你自己

git push fany task/T28288:task/T28288 --force

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值