首页 > 其他分享 >git常用操作

git常用操作

时间:2023-01-06 11:12:03浏览次数:35  
标签:origin 常用 git -- tag commit 操作 分支

git

git init

# git init 命令用于在目录中创建新的 Git 仓库.
# 例如我们在当前目录下创建一个名为 runoob 的项目.
$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
$ ls -a
.    ..    .git

git配置

# git 的设置使用 git config 命令。
# 显示当前的 git 配置信息:
$ git config --list
credential.helper=osxkeychain
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true

# 编辑 git 配置文件:
$ git config -e    # 针对当前仓库.
# 或者:
$ git config -e --global   # 针对系统上所有仓库.

# 设置全局提交代码时的用户信息,如果去掉 --global 参数只对当前仓库有效.
$ git config --global user.name "runoob"
$ git config --global user.email [email protected]

远程仓库

# 添加一个远程仓库,别名为origin
$ git remote add origin [email protected]:cicd/auto_sys.git

# 查看当前配置有哪些远程仓库
git remote -v
origin	[email protected]:cicd/auto_sys.git (fetch)
origin	[email protected]:cicd/auto_sys.git (push)

# 删除一个远程仓库
git remote rm [别名] # 例:git remote rm origin

git commit

# 添加某个已做修改的文件
$ git add file
# 添加所有修改文件
$ git add .
# 提交并声明。在gitlab中,为避免触发执行ci,可以添加-m "[skip ci]"来跳过。
$ git commit -m "注释"
# 不需要执行 git add 命令,直接来提交
$ git commit -a -m "注释"
# 查看最近提交的一次记录
$ git log -n 1 --stat   
# 查看提交的详情
git show commit-id 
# 如果commit注释写错了,只是想改一下注释,只需要:
$ git commit --amend # 此时会进入默认vim编辑器,修改注释完毕后保存就好了。

分支操作

# 创建新分支并切换到该分支 
$ git checkout -b branch

# 修改分支的名字
$ git branch -m 旧名 新名

# 切换不同的分支,首先切换到master,在切换到目的分支
$ git checkout master;git checkout branch

# 列出当前分支
$ git branch -a 
$ git branch -vvv

# 提交当前分支到远端
# git push origin branch

# # 删除远端分支
git push --delete origin branch

# 设置本地创建branch分支同步到远端
$ git push --set-upstream origin branch
$ git push

# 设置远程分支同步到本地branch分支
$ git branch --set-upstream-to origin branch
$ git pull

合并分支

# 一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
# 切换到dev分支
$ git checkout dev
# 拉取最新的dev分支代码
$ git pull
# 切换到master分支
$ git checkout master
# 合并最新dev分支代码到master
$ git merge dev
# 上传最新的master分支代码到远程仓库
$ git push -u origin master

二、当master代码改动了,需要更新开发分支(dev)上的代码
$ git checkout master
$ git pull
$ git checkout dev
$ git merge master
$ git push -u origin dev

git tag

# 创建 tag 是基于本地分支的 commit,而且与分支的推送是两回事,就是说分支已经推送到远程了,但是你的 tag 并没有,如果把 tag 推送到远程分支上,需要另外执行 tag 的推送命令。
$ git tag <tagName> //创建本地tag
$ git push origin <tagName> //推送到远程仓库
# 若存在很多未推送的本地标签,你想一次全部推送的话:
$ git push origin --tags

# 以上是基于本地当前分支的最后的一个commit 创建的 tag ,但是如果不想以最后一个,只想以某一个特定的提交为tag ,也是可以的,只要你知道commit 的id。
$ git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit id
$ git tag -a <tagName> <commitId>


#  查看本地某个 tag 的详细信息:
$ git show <tagName>
#  查看本地所有 tag:
$ git tag 或者 git tag -l
# 查看远程所有 tag:
$ git ls-remote --tags origin

# 本地 tag 的删除:
$ git tag -d <tagName>
# 远程tag的删除方式:
$ git push --delete origin <tagName>

commit 后的回滚操作

# 回滚上一次提交
$ git reset --hard HEAD^
# HEAD^的意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2
  # --soft 不删除工作空间改动代码,撤销commit,不撤销git add .
  # --hard 删除工作空间改动代码,撤销commit,撤销git add .

# 对指定某个文件进行撤销
$ git reset HEAD XXX/XXX/XXX.java 

# 当需要删除最新的提交、或最最近的几个提交。比如删除 1 或者 1~3 的提交,使用 git reset命令。
  # 我们需要关注一下 git reset的 --hard 和 --soft 参数。
  # 举个例子删除最近两个提交看看:
  $ git reset --soft commit~3,然后 git status

git diff

# Git中的diff主要用于比较差异,查看差异
# 可以比较不同分支差异、不同区域(Git的分区)差异、不同提交记录之间差异

# 工作区和暂存区(Stage/index)之间的差异
$ git diff
# 这个命令显示的是详细的差异,比如是哪个文件中的哪行有变化。有时候会很多很杂乱,可以使用下面的命令直接显示哪个文件有了多少变化
$ git  diff --stat

#  工作区和版本库之间差异
$  git diff HEAD 或者 git diff cimmit-id
# 同时也可以加上--stat指令,用于查看简易的差异

# 暂存区和版本库之间的差异
# 如果需要比较暂存区和版本库之间的差异,需要添加–cahced ,其他的指令类似,包括–stat 
$ git diff --cached HEAD 或者git diff --cached commit-id

# 版本库之间提交记录的比较
git diff commit-id  commit-id
# 也可以使用HEAD来比较:
$ git diff HEAD^ HEAD

# 不同分支之间的比较
# 假设现在有分支test-1和master分支,需要比较这两个之间的差异,可以使用一下命令
$ git diff test-1 master

标签:origin,常用,git,--,tag,commit,操作,分支
From: https://www.cnblogs.com/acommoners/p/17029848.html

相关文章

  • Android画布(二)ShapeDrawable常用函数
    ShapeDrawable常用函数setBounds()用来指定当前ShapeDrawable在当前控件中的显示位置setBounds(intleft,inttop,intright,intbottom)setBounds(Rectbounds)getPaint......
  • 有效提升软件产品质量,测试人员必备软件测试常用方法
    软件测试是软件产品生产周期中必不可少的一项重要活动,是确保软件质量的关键性环节。软件测试不仅仅是一种技术活动,它更是保证软件质量、提升软件产品的可靠性和功能性的......
  • python-函数-常用内建函数
    1.函数-常用内建函数内建函数python解释器内置了很多函数,你可用直接使用它们在前面学习过的内建函数有:print()、len()、open()、range()内建函数描述map()......
  • JAVA常用的工具类
    1集合工具类1.1java.util.Collections使用的基本list示意List<Integer>list=newArrayList<>();list.add(2);list.add(1);list.add(3);1.1.1基本操作Collections.so......
  • springMVC常用注解介绍
    @Controller注解一个类表示控制器,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model......
  • Docker常用命令
    Docker的常用命令帮助命令dockerversion #显示docker的版本信息dockerinfo   #显示docker的系统信息,包括镜像和容器的数量docker --help #万能命令帮助......
  • Python文件夹操作
    如何使用python新建文件夹以及递归创建文件夹os.mkdir使用python创建文件夹,通常使用os.mkdir方法,在使用这个方法时有几个小的细节需要注意,假设你的代码是这样编写的i......
  • 对一些常用RDD算子的总结
    虽然目前逐渐sql化,但是掌握RDD常用算子是做好Spark应用开发的基础,而数据转换类算子则是基础中的基础,因此学习这些算子还是很有必要的。这篇博客主要参考Spark官方文档......
  • git常用命令
    git常用命令1.初始化一个本地仓库gitinit2.查看状态gitstatusgitlog3.加到暂缓区gitadd.(当前文件夹所有改动会被添加)4.提交gitcommit-m"xxxxx"......
  • 初识MySQL(三)CRUD操作
    insert增加   update更新updateusersetage=23wherename='zhangsan';updateusersetage=age+1whereid=3; delete删除deletefr......