前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 的基础使用

Git 的基础使用

原创
作者头像
Vine
发布2022-06-06 10:52:45
6020
发布2022-06-06 10:52:45
举报
文章被收录于专栏:Swift Server

GitNormal

创建md文件

  • echo "" >> readme.md

--> git 常用命令

  • git commit --amend -m "最后一次提交" //这里是修改最后一次提交
  • git log --graph //这里查看详情。

已有项目拉取

  • 创建文件夹
代码语言:txt
复制
mkdir Workstation
  • 初始化仓库
代码语言:txt
复制
cd Workstation
git init
  • 添加远程仓库
代码语言:txt
复制
git remote add origin git@127.0.0.1:/opt/git/YSJ.git
  • 拉取远端仓库
代码语言:txt
复制
git pull origin master
  • 第一次推内容
代码语言:txt
复制
git push -u origin master

直接使用远端项目名称

首先将远程代码拉取到本地

代码语言:txt
复制
git clone xxx
git checkout -b develop origin/develop

新建feature分支

代码语言:txt
复制
git checkout -b feature

删除本地分支

代码语言:txt
复制
git branch -d feature
  • 强制删除本地分支
代码语言:txt
复制
git branch -D feature

提交本地分支到远端

代码语言:txt
复制
git push origin feature

删除远端分支

代码语言:txt
复制
git push origin :feature

feature 开发中的一些常用命令

1、 工作区回退

撤销修改

代码语言:txt
复制
git checkout -- readme.md
2、 暂存区回退

取消暂存

代码语言:txt
复制
git reset HEAD readme.md
3、 版本回退

版本回退

  • 回到上一个版本
代码语言:txt
复制
git reset --hard HEAD^
  • 回到指定版本
代码语言:txt
复制
git reset --hard 1094abes
  • 记录提交命令
代码语言:txt
复制
git reflog
4、 删除操作

删除操作

代码语言:txt
复制
# 确实要删除
git add readme.md
# 或者
git rm readme.md

# 误删
git checkout -- readme.md
5、 内容暂存

暂存操作

  • 这里是不想污染提交历史
代码语言:txt
复制
# 暂存
git stash

# 查看暂存列表
git stash list

# 恢复
git stash apply

# 删除
git stash drop

# 恢复并删除
git stash pop

# 恢复到指定的stash

git stash apply stash@{0}
Untracked files
代码语言:txt
复制
# 删除 untracked files
git clean -f
 
# 连 untracked 的目录也一起删掉
git clean -fd
 
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
 
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

然后由feature负责人rebase develop分支,然后将feature分支合入develop,删除feature

代码语言:txt
复制
    git fetch origin
    git rebase origin/feature
    git rebase develop
    git checkout develop
    git merge feature
    git push origin :feature

合入feature后拉出对应的release/feature分支,后续bug修复在release/feature

代码语言:txt
复制
    git checkout develop
    git checkout -b release/feature

之后将release/feature合入develop分支,然后删除

代码语言:txt
复制
	# 因bug修复期间,develop分支有改动、这里需要合并develop分支内容
	
    git rebase develop
    git checkout develop
    
	# 当前是在 develop分支
	
    git merge release/feature
    git push origin :release/feature

发布完成后将release合入master分支,保证master为最新稳定版本(实际操作为发起merge request)

Gitflow 的一些实践

master 分支

  • 主分支
  • 保持稳定
  • 不允许直接往这个分支提交代码,只允许往这个分支merge request
  • 只允许release分支和hotfix 分支进行合流

develop分支

  • 开发分支
  • 相对稳定的分支
  • 用于日常开发,包括代码优化,功能性开发

feature分支

  • 特性分支
  • 从develop分支拉取,用于下个迭代版本的功能特性开发
  • 功能开发完毕合并到develop分支

release分支

  • 发布分支
  • 从develop分支拉取
  • 用户回归测试,bug修复

这里模拟一次feature开发

创建开发分支

代码语言:txt
复制
git checkout -b feature

开发中git基础命令

  • git 状态
代码语言:txt
复制
	git status
git 回退
  • 工作区回退
代码语言:txt
复制
git checkout -- readme.md
  • 暂存区回退
代码语言:txt
复制
git reset HEAD readme.md
  • 版本回退
代码语言:txt
复制
# 上一版本
git reset --hard HEAD^
# 指定版本
git reset --hard 1094a
  • develop分支有更新、这里的操作是为了防止开发完成产生大量冲突
  • 这里也可以使用pull拉取develop分支,合并到当前分支,但是会影响提交历史美观度。
代码语言:txt
复制
git rebase develop
  • rebase的过程中,也许会出现冲突conflict,在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用git-add命令去更新这些内容的索引(index),然后无需执行git-commit命令,只需执行:
代码语言:txt
复制
git rebase --continue
  • 这样git会继续应用(apply)余下的补丁,在任何时候,你都可以使用--abort参数来终止rebase的行为,并且feature分支会回到rebase开始前的状态。
代码语言:txt
复制
git rebase --abort

这里模拟一次发布

创建发布分支

代码语言:txt
复制
git chekcout -b release

修改版本号

代码语言:txt
复制
// 这里是代码修改
// 提交修改
git commit -a -m "更新版本号"

完成发布分支

代码语言:txt
复制
git checout master
// 这里是合并分支, 为了清晰不使用快速合并
git merge --no-ff release

// 这里在master版本添加tag
git tag -a "v1.2"
标签的使用
代码语言:txt
复制
列出所有标签
git tag
git tag -l
打标签
git tag V1.0
打标签带注释
git tag -a v1.0.9 -m "version 1.0.9"
打标签在某个提交上
git tag -f v1.5 2aeefa2
删除标签
git tag -d V1.0
替换标签就是先删除后添加。
代码语言:txt
复制
显示标签具体修改,类似log。
git show V1.0
切换到某个版本
git checkout V1.0
推送到远程服务器
git push origin V1.0
推送所有标签到远程服务器
git push origin --tags

删除远程标签
git push origin :refs/tags/0.1.0

合并到development分支

代码语言:txt
复制
git checout develop
git merge --no-ff release

删除发布分支

代码语言:txt
复制
git branch -d release

模拟修复(Hotfix Branch)分支

分支来源: master 分支

分支去向:develop 分支和 master分支

分支命名:以hotfix-开头

创建修复分支

代码语言:txt
复制
$ git checkout -b hotfix-1.2.1 master
$ vim file #表示修复bug
$ git commit -a -m "修复bug"
$ vim file #表示更新版本号
$ git commit -a -m "版本更新为1.2.1"

完成修复分支

代码语言:txt
复制
$ git checkout master
$ git merge --no-ff hotfix-1.2.1
$ git tag -a 1.2.1 #tag操作

完成develop分支

代码语言:txt
复制
$ git checkout develop
$ git merge --no-ff hotfix-1.2.1

删除修复分支

代码语言:txt
复制
$ git branch -d hotfix-1.2.1

这里是其他的回退

代码语言:txt
复制
git reset --hard ORIG_HEAD

强制推送到远端

代码语言:txt
复制
git push -f origin master 

对于远端进行回退

revert 放弃指定提交
  • 删除最后一次提交
代码语言:txt
复制
git revert HEAD
git log
git push origin master
如果失败
代码语言:txt
复制
git revert HEAD
error: commit 986eebc4a26f04684d3e27e8ca08307e2a71bb6d is a merge but no -m option was given.
fatal: revert failed

https://segmentfault.com/a/1190000015792394

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitNormal
  • 创建md文件
    • 已有项目拉取
      • 首先将远程代码拉取到本地
        • 新建feature分支
          • 删除本地分支
            • 提交本地分支到远端
              • 删除远端分支
                • feature 开发中的一些常用命令
                  • 然后由feature负责人rebase develop分支,然后将feature分支合入develop,删除feature
                    • 合入feature后拉出对应的release/feature分支,后续bug修复在release/feature上
                      • 之后将release/feature合入develop分支,然后删除
                        • 发布完成后将release合入master分支,保证master为最新稳定版本(实际操作为发起merge request)
                        • Gitflow 的一些实践
                          • master 分支
                            • develop分支
                              • feature分支
                                • release分支
                                  • 创建开发分支
                                  • 开发中git基础命令
                                  • 创建发布分支
                                  • 修改版本号
                              • 这里模拟一次feature开发
                              • 这里模拟一次发布
                                • 完成发布分支
                                  • 合并到development分支
                                    • 删除发布分支
                                    • 模拟修复(Hotfix Branch)分支
                                      • 创建修复分支
                                        • 完成修复分支
                                          • 完成develop分支
                                            • 删除修复分支
                                            • 这里是其他的回退
                                            • 强制推送到远端
                                            • 对于远端进行回退
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档