gitlab的使用

Git global setup

git config --global user.name "fumk"
git config --global user.email "fumk@paraview.cn"

Create a new repository

git clone http://.git
cd my-AppStore
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder

git init
git remote add origin http://.git
git add .
git commit -m "Initial commit"
git push -u origin master

Existing Git repository

cd existing_repo
git remote add origin http://.git
git push -u origin --all
git push -u origin --tags

强制上传(禁止使用)

git push -u origin fmk -f

删除分支

命令:$ git push origin 【空格】【冒号】【需要删除的分支名字】

比如我github上有master和fmk分支,我现在想着删除fmk分支

git push origin :fmk

git push origin --delete fmk

合并分支(直接clone)

1. 先检出项目到一个文件夹
git clone http://.git
2. 切换到自己的分支
git checkout -b fmk
3. 修改fmk的代码

4. 切换到master分支
git checkout master
5. 合并fmk到master
git merge fmk

合并两个分支代码

1. 先创建要爬下来的分支
git checkout -b **
2. 获取分支下最新版本
git fetch origin **
//fetch:相当于是从远程获取最新版本到本地,不会自动merge
3. 切换到自己分支
git checkout fmk
4. 合并
git merge **

以上命令的含义:

首先从远程的origin的master主分支下载最新的版本到origin/master分支上

然后比较本地的master分支和origin/master分支的差别

最后进行合并

 pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

修改已有git项目的远程仓库指向

$ git remote set-url origin git@github.com:test/thinkphp.git

FORCE CHECKOUT

force checkout就不会把冲突的这部分内容带到开发分支

SMART CHECKOUT

smart checkout就会把冲突的这部分内容带到开发分支

Could not resolve host

当我使用gitcbu下载项目,再用gitlab提交时报错

fatal: unable to access ‘http://gitlab.paraview.cn/Wuhan/hisense/hisense_login.git/’: Could not resolve host: gitlab.paraview.cn

解决方法:
打开公司VPN就好了

同一工程中,合并两个git项目内容

  • 场景:将branch2合并到branch1
  • 克隆a到本地:git clone a.git
  • 切换到branch1分支:git checkout branch1
  • 设置b为a的远程地址,并且定义一个别名为base-102:git remote add base-102 git@192.xx.102.b.git 一般本地branch1默认了origin远程名称,所以起个别名
  • 切换到b的branch2分支:git checkout branch2
  • 拉最新的代码到本地的branch2分支:git pull base-102 branch2
  • 切加branch1分支:git checkout branch1
  • 将本地的branch2分支合并到branch1分支:git merge branch2
  • 此时,如果报错:fatal: refusing to merge unrelated histories … 则使用加上一个参数: git merge develop --allow-unrelated-histories
  • 推送branch1到远程origin:git push origin branch1

git回退到某个历史版本

1. 方法一:git reset

直接回退到指定版本,目标版本之后的提交将被删除。

情况一:“git reset --hard 版本库地址” ,拉取服务器指定提交到暂存区,该操作不影响工作区。

步骤1:使用git log命令查看所有的历史版本,获取某个历史版本的id

git log

步骤2:执行“git reset --hard 版本库地址” ,将服务器指定版本拉取到本地暂存区。

git reset --hard 3a7b73c5cf359187aeb2732a608ede17a78b061f

步骤3:使用“git push -f”提交更改

情况二:“git reset --hard HEAD^ ”:拉取服务器最近一次提交到暂存区,该操作不影响工作区。
然后执行“git checkout 文件名”,从暂存区拉取到工作区。

git reset --hard HEAD^

拉取上次提交前的代码

git reset --hard HEAD^

2. 方法二:git commit --amend

如果上次提交的内容有误,想进行修改,而且不想进行新的提交,使用git commit – amend。

步骤:

  1. 修正内容,执行“git add”;
  2. 执行“git commit --amend”;
  3. 自动进入vim提示需要添加commit信息。输入:“i”添加信息"delete fff",“esc”、“wq”退出并保存;
  4. 执行“git push -f”成功推送到服务器 (git push会提示报错:当前暂存区版本低于服务器版本一次提交)。

git 合并一个分支的某次提交到另一个分支

git cherry-pick  0128660c08e325d410cb845616af355c0c19c6fe

git tags使用

1.创建tags

git tag -a <tagname> -m "added description release notes" # 创建标签

2.上传tags到远程仓库

git push origin <tagname> # 推送一个本地标签到远程仓库

3.删除本地tags

it tag -d <tagname> # 删除标签

4.删除远程tags

git push origin :refs/tags/<tagname> # 删除一个远程标签

5.更新tags内容

git tag -f tagname
git push origin -f tagname 

其他常用命令

初始化一个仓库:git init
查看分支:git branch
将已修改或未跟踪的文件添加到暂存区:git add [file] 或 git add .
提交至本地仓库:git commit -m "提及记录xxxx"
本地分支推送至远程分支:git push
查看当前工作目录和暂存区的状态: git status
查看提交的日志记录: git log
从远程分支拉取代码:git pull
合并某分支(xxx)到当前分支: git merge xxx
切换到分支xxx:git checkout xxx
创建分支xxx并切换到该分支:git checkout -b xxx
删除分支xxx:git branch -d xxx
将当前分支到改动保存到堆栈中:git stash
恢复堆栈中缓存的改动内容:git stash pop
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值