git的使用开发笔记

本文涵盖Git的基础命令,如删除分支、添加文件、合并分支等,深入探讨rebase与merge的区别,详解如何克隆指定分支,演示如何使用Android Studio进行版本回退,以及修改远程库地址的方法。同时,分享在GitLab上发起merge请求和删除项目的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常用的命令:

===============常用的命令start=====

删除本地分支命令:

git branch -d +分支名称     或强制删除:git branch -D +分支名

删除远端服务器分支:(用过方式2:git push origin --delete <branchName>)

在 git 中,可以使用下面两个命令来删除远端服务器上的分支。

  • git push origin :<branchName>

在 git push origin :<branchName> 命令中,冒号 ":" 前面的参数是要推送的本地分支名,这里没有提供,相当于推送一个本地空分支。冒号 ":" 后面的参数是要推送到服务器的远端分支名。

这个命令推送一个空分支到远端分支,相当于远端分支被置为空,从而删除 branchName 指定的远端分支。

  • git push origin --delete <branchName>

git push origin --delete <branchName> 命令本质上跟 git push origin :<branchName> 是一样的

表示以当前分支的当前状态创建新分支并切换到新分支    -b 表示创建新分支:

git checkout -b develop

回到上个分支:

git checkout -

将本地分支newbranch(冒号前面的)推送到远程origin的newbranch(冒号后面的)分支(没有会自动创建) 

git push origin newbranch:newbranch

查看本地和远程分支命令:

git branch -va

================常用的命令end==========

二、git add 多个文件和文件夹的方法:

注:添加完,使用命令git status查看下状态,看还有没有没有提交的,比如出现如下的就是没有提交的

添加指定目录下的文件:config目录下及子目录下所有文件,home目录下的所有.php文件

git config/*
git home/*.php

git add 添加多个文件,文件之间以空格隔开

git add file1 file2 file3

参考:git add 多个文件和文件夹的方法_git add添加多个文件-CSDN博客

三、使用 rebase 和 merge 的基本原则:

  1. 下游分支更新上游分支内容的时候使用 rebase
  2. 上游分支合并下游分支内容的时候使用 merge
  3. 更新当前分支的内容时一定要使用 --rebase 参数

例如现有上游分支 master,基于 master 分支拉出来一个开发分支 dev,在 dev 上开发了一段时间后要把 master 分支提交的新内容更新到 dev 分支,此时切换到 dev 分支,使用 git rebase master

等 dev 分支开发完成了之后,要合并到上游分支 master 上的时候,切换到 master 分支,使用 git merge dev

参考:http://t.csdn.cn/RNdXx

上游分支合并下游分支内容的时候使用Cherry-Pick。等 dev 分支开发完成了之后,要合并到上游分支 master 上的时候,切换到 master 分支,使用 Cherry-Pick

四、git clone远程仓库的指定分支

1.正常clone方式

git clone <远程仓库地址>

默认clone的是远程仓库的master分支

2.clone指定分支

git clone -b <分支名> <远程仓库名> 

如:git clone -b develop .......git

在本地创建该分支的文件夹,且只包含该远程仓库的该分支下所有文件,其他分支文件不会包含


 

五、Android Studio Git实现回退至某一个版本

 在利用GIT实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法.

        reset:删除直到XXX版本的所有commit(回滚到指定版本)

        revert:删除某个XXX版本的commit(删除已提交的某个版本)
————————————————
参考原文链接:https://blog.csdn.net/Ying_ph/article/details/130761628

revert撤销:(已经提交到远程的)

git log:查看版本号

git revert 版本号:撤销该版本号提交的代码

git cherry -v:查看未提交的代码

git push:更新远程仓库 

Reset回退流程:(本地代码)
一、android studio上部VCS > Git > Reset Head..
二、选择Reset Type
注释:Reset Type
git reset –mixed:此为默认方式,它回退到某个版本,保留源码,回退commit和index信息
git reset –soft:回退到某个版本,保留源码,只回退commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,同时index也会指向commit前的版本
注意:选择hard时,先把当前的版本提交一下。
三、to commit填:HEAD,‘HEAD~1’表示HEAD的前一个版本,‘HEAD~2’依次类推。点击Validate可以查看提交的信息

回退到上一个版本
git reset --hard HEAD^ # 回退上一个版本
git reset --hard HEAD~3  # 回退上上上一个版本 
git reset --hard bae128  # 回退到某个版本回退点之前的所有信息。
  • HEAD 表示当前版本

  • HEAD~1 上一个版本

  • 以此类推...

特性

git revert

 (撤销/冲正)

git reset --hard 

(重置/时光倒流)

工作原理

创建一个新的、内容相反的提交来抵消某个历史提交。

丢弃

指定 commit 之后的所有提交,将分支指针直接移动到指定 commit。

历史记录保留并追加

历史。原来的“坏”提交还在,只是多了一个“修正”提交。

修改并删除

历史。指定 commit 之后的提交记录就像从未存在过一样。

安全性安全

 ✅。可以安全地用于任何共享/公共分支(如 mainmasterdevelop)。

危险

 ⚠️。严禁在已经推送到远端的公共分支上使用,否则会造成其他协作者的历史混乱。

适用场景

1. 修复已经推送到远端的错误提交。
2. 撤销公共分支上的某次合并或功能。

1. 在个人私有分支上整理提交。
2. 彻底丢弃本地还未推送的错误提交。

老板,我把代码搞砸了!...等等,git revert 让我又搞回来了

六、将dev分支代码合并到master上

1、首先在dev分支上进行
    git add .
    git commit -m "dev"
    git push -u origin dev
2、切换到master上
    git checkout master      首先切换到master分支上
    git pull origin master     把远程master上的代码pull下来,自己开发没必要
    git merge dev                把dev分支的代码合并到master上
    git status                       查看状态
    git push origin master    push到远程master上

使用Git创建本地分支和远程分支以及合并    https://blog.csdn.net/TTAndroid/article/details/81358625Android Studio

AndroidStudio将branch的代码合并到master  https://www.jianshu.com/p/bfdad913f172

七、git之修改远程库地址用到的命令如下:

  • git remote -v 查看本地远程仓库地址
  • git remote rm origin 删除本地git项目对应的远程仓库地址
  • git remote add origin + 远程仓库地址 添加远程仓库地址
  • git remote set-url origin 远程仓库地址 修改远程仓库地址

方式一:直接修改本地git项目对应的远程仓库的地址

git remote -v
git remote set-url origin 新的远程git仓库地址
git remote -v

//推送所有分支
git push origin --tags && git push origin --all

方式二:先删除本地git项目对应的远程仓库地址,再为其添加新的仓库地址

git remote -v
git remote rm origin
git remote add origin 新的远程git仓库地址
git remote -v

//推送所有分支
git push origin --tags && git push origin --all

本地项目关联git

1、本地项目先初始化为git项目:git init

2、创建本地分支:git checkout -b develop

3、打包本地项目:git add .

4、将项目提交至本地仓库:git commit -m 'this is commit msg'

5、本地仓库与远程仓库绑定:git remote add origin 远程地址

6、提交代码:git push --set-upstream origin develop

前五步连起来命令:git init && git checkout -b develop && git add . && git commit -m 'this is commit msg' && git remote add origin 远程地址

八、Android Studio 无需打开 GitLab 直接发起merge请求

使用插件:GitLab Quick Merge Request

Android Studio 无需打开 GitLab 直接发起merge请求 - 掘金

九、GitLab上删除创建的项目:

(参考:gitlab中如何删除Group,删除项目_zxucheng的博客-CSDN博客_gitlab删除group)

1、首先,在项目列表中选择要删除的项目,点击进入;

2、点击Settings中的General,然后点击Advanced settings 的Expend按钮;

3、滑到最下边,点击“Remove project”;

4、在弹出框中输入要删除的项目名称即可;

在gitlab上合并:

问题1:git add * 提示warning: LF will be replaced by CRLF in 解决办法

解决:git config core.autocrlf false

问题2:Failed to connect to gitlab.com port 443 after 75007 ms: Operation timed out

解决:未发现配置过http/https的代理,尝试在命令行中输入如下命令,进行代理的重试:

git config --global --unset http.proxy
git config --global --unset https.proxy

问题3.git仓库日志出现merge remote-tracking

如: Merge remote-tracking branch 'origin/feature/mcm_2.0.0' into feature/mcm_2.0.0
        git日志出现这个东西,是因为我们先将修改的代码commit到了本地仓库,然后再去pull更新项目。如果远程仓库有新内容(大部分情况都会有),更新代码时拉取的新内容是要和本地提交进行一个合并,然后就出现了Merge remote-tracking branch 'origin/master'。

解决方法:在commit代码之前,都先去pull更新一下代码。这样做就避免了合并代码。

这种情况也不必紧张🤭,没有什么影响,只是多了一条记录看着不舒服还占地方😂
 

参考:如何拉取git远程仓库的某个指定分支_benben_2015的博客-CSDN博客_git pull 某个分支

廖雪峰创建与合并分支 - 廖雪峰的官方网站

git checkout命令总结:https://www.cnblogs.com/gaoBlog/p/10955352.html

工作中常用的 git 命令,收藏版!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值