一、常用的命令:
===============常用的命令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
的基本原则:
- 下游分支更新上游分支内容的时候使用
rebase
- 上游分支合并下游分支内容的时候使用
merge
- 更新当前分支的内容时一定要使用
--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 之后的提交记录就像从未存在过一样。 |
安全性 | 安全 ✅。可以安全地用于任何共享/公共分支(如 | 危险 ⚠️。严禁在已经推送到远端的公共分支上使用,否则会造成其他协作者的历史混乱。 |
适用场景 | 1. 修复已经推送到远端的错误提交。 | 1. 在个人私有分支上整理提交。 |
老板,我把代码搞砸了!...等等,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