Git常用操作
创始人
2024-02-29 00:23:58
0

目录

  • 一、前言
  • 二、查看变更及历史信息
    • 2.1 查看变更状态
      • 1、显示本地仓库有变更的文件
    • 2.2 查看历史记录
      • 1、查看历史提交记录
      • 2、查看历史某个文件的提交记录
  • 三、撤销提交
      • 3.1 撤销工作区的修改
      • 3.2 撤销暂存区的提交
      • 3.3 撤销已经提交到本地仓库的代码
  • 四、冲突解决
    • 4.1 远程仓库中有新增无修改,没拉取后就推送
    • 4.2 远程仓库中有修改,无新增,改了同一个文件,没拉取后就推送
  • 五、分支操作
    • 5.1 查看分支
      • 1、查看远程分支
      • 2、查看本地分支
      • 3、查看所有分支列表
    • 5.2 创建和切换分支
      • 1、创建新分支
      • 2、切换分支
      • 3、创建分支的同时切换到该分支上
    • 5.3 从远程仓库pull(拉取)代码到本地分支
      • 1、指定远程分支和本地分支
      • 2、如果不写本地分支名称,则默认和远程分支同名
    • 5.4 将新分支推送到远程仓库
      • 1、如果远程仓库已有该分支
      • 2、如果远程仓库没有该分支
    • 5.5 删除分支
      • 1、删除本地分支(不能删除当前所在分支,如果要删除,必须切换到其它分支上)
      • 2、删除远程分支
    • 5.6 合并分支
      • 1、假设我们在本地分支:`newbranch` 上
      • 2、切换到 master 分支上

一、前言

该篇文章主要总结在平时工作中使用 Git 最常见的几种情况。

二、查看变更及历史信息

2.1 查看变更状态

1、显示本地仓库有变更的文件

git status

示例:

远程仓库现有 1.txt 文件,拉取仓库最新的文件后,并创建一个文件,在查看状态:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git pull
Already up to date.Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ ll
total 0
-rw-r--r-- 1 Administrator 197121 0 Nov 29 13:28 1.txtAdministrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ touch 2.txtAdministrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git status
On branch develop
Your branch is up to date with 'origin/develop'.Untracked files:(use "git add ..." to include in what will be committed)2.txtnothing added to commit but untracked files present (use "git add" to track)

2.2 查看历史记录

1、查看历史提交记录

git log
git log --oneline 简洁的版本
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git log --oneline
c4fdd63 (HEAD -> develop, origin/develop) add 2.txt 13.40
93b93f0 add 1.txt
3462cd9 delete four
bf0576c a b txt
9e29d0e rm
90627c2 test
495b54d 2.txt
6708865 test
262d5a5 test
2c1cfc6 test
fdef982 (origin/hotfix, origin/feature) Initial commit

2、查看历史某个文件的提交记录

git blame 文件名

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git blame 2.txt
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 1) 123
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 2) 456

三、撤销提交

在这里插入图片描述

3.1 撤销工作区的修改

git checkout -- 文件名

3.2 撤销暂存区的提交

git reset HEAD

3.3 撤销已经提交到本地仓库的代码

方法一:不保留本地修改

//向前回退一个版本
git reset --hard HEAD^
//向前回退两个版本,以此类推
git reset --hard HEAD^^

方法二:不保留本地修改

//向前回退一个版本
git reset --hard HEAD~1
//向前回退两个版本,以此类推
git reset --hard HEAD~2

方法三:保留本地修改

//查看上次提交号
git log --oneline 
//根据提交号进行撤销
git reset --hard 版本号

其中方法一和方法二不保留本地的修改(多一步 git checkout – 文件名 操作),方法三能够撤销提交并且保留本地的修改。

四、冲突解决

4.1 远程仓库中有新增无修改,没拉取后就推送

初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 和 b.txt 两个文件。

开发者1开发者2时间点
git pullgit pull09:01
touch c.txt09:02
git add .09:03
git commit -m ‘add c.txt’09:04
git push09:05
vim a.txt09:06
git add .09:07
git commit -m ‘update a.txt’09:08
git push09:09
报错,出现了冲突09:09
git pull09:10
git push09:11
推送成功09:11

总结:当不是本地和远程仓库同一个文件产生冲突,push 之前 使用 git pull 拉取下即可。

4.2 远程仓库中有修改,无新增,改了同一个文件,没拉取后就推送

初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 这个文件。

开发者1开发者2时间点
git pullgit pull09:01
vim a.txt09:02
git add .09:03
git commit -m ‘update 1.txt’09:04
git push09:05
vim a.txt09:06
git add .09:07
git commit -m ‘update a.txt’09:08
git push09:09
推送报错,出现了冲突09:09
git pull09:10
拉取报错,提示出现了冲突09:10
git status09:11
手动解决冲突文件(要么是手动合并要么是忽略自己的修改)09:12
解决完后,无需重新拉取,将这次修改再次提交09:12
git add .09:13
git commit -m ‘solve conflict a.txt’09:14
git push09:15

提示:git stash,可忽略自己的修改。

五、分支操作

远程仓库默认五个分支:master、release、develop、feature、hotfix

在这里插入图片描述

5.1 查看分支

1、查看远程分支

git branch -r

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -rorigin/HEAD -> origin/masterorigin/developorigin/featureorigin/hotfixorigin/masterorigin/release

2、查看本地分支

git branch

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch
* master

3、查看所有分支列表

git branch -a

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* masterremotes/origin/HEAD -> origin/masterremotes/origin/developremotes/origin/featureremotes/origin/hotfixremotes/origin/masterremotes/origin/release

5.2 创建和切换分支

1、创建新分支

git branch 新分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch mybranchAdministrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* mastermybranchremotes/origin/HEAD -> origin/masterremotes/origin/developremotes/origin/featureremotes/origin/hotfixremotes/origin/masterremotes/origin/release

2、切换分支

git checkout 已有分支名称

3、创建分支的同时切换到该分支上

git checkout -b 新分支名称

5.3 从远程仓库pull(拉取)代码到本地分支

1、指定远程分支和本地分支

git pull origin 远程分支名称:本地分支名称

2、如果不写本地分支名称,则默认和远程分支同名

git pull origin 远程分支名称

5.4 将新分支推送到远程仓库

1、如果远程仓库已有该分支

git push origin 分支名称

2、如果远程仓库没有该分支

git push --set-upstream origin 新分支名称

该句命令可以将本地新建的分支上传到远程仓库,使远程仓库有了该分支。

5.5 删除分支

1、删除本地分支(不能删除当前所在分支,如果要删除,必须切换到其它分支上)

git branch -d 分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -d mybranch
error: The branch 'mybranch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D mybranch'.

删除的时候报错 The branch ‘mybranch’ is not fully merged(未完全合并分支),可使用以下命令:

git branch -D 分支名称

2、删除远程分支

git push origin :远程分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git push origin :mybranch
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:tmqqsir/demo.git- [deleted]         mybranch

5.6 合并分支

1、假设我们在本地分支:newbranch

git add .
git commit -m '完成某个功能'
git push -u origin newbranch

2、切换到 master 分支上

git checkout master

3、拉取 master 分支最新代码

git pull origin master

4、将 newbranch 分支合并到 master 分支上

git merge newbranch

如果合并的时候出现冲突,执行以下命令取消合并:

git merge --abort:

然后查看状态解决冲突:

git status

最后一步,push到远程仓库:

git push origin master

相关内容

热门资讯

从创始人驱动到制度驱动,“中国... 导语:随着一代传奇人物陈景河退入幕后,紫金矿业这一庞大的矿业帝国能否续写神话? 李平/作者砺石商业...
“两高”联合发布第三批行政公益... 中新网12月22日电 据“最高人民检察院”微博消息,为进一步发挥典型案例指导引领作用,12月22日,...
福田区举行年度律师大会 《粤港... 深圳新闻网2025年12月22日讯(深圳特区报记者 张玮玮 林清容 通讯员 蔡梓帆 张圳伟)12月1...
浙江天台男子行凶致一死一伤 起... 封面新闻记者 张奕丹 今年5月,浙江省天台县发生一起一死一伤的刑事案件。12月22日,被害人的家属陈...
闪电律解·每周精选问答丨遗产继... 齐鲁网·闪电新闻12月22日讯 随着网友法律意识的提升,越来越多的人选择通过法律渠道解决自己生活工作...
以和为贵化纠纷 情理兼顾续亲情 近日,桦甸市人民法院成功调解一起亲友间民间借贷纠纷,既化解了债务矛盾,又维系了双方亲属情谊,以司法温...
西北联大旧址濒临灭失公益诉讼促... 行政公益诉讼抢救濒危抗战文物。 12月22日,最高人民法院、最高人民检察院联合发布第三批行政公益诉讼...
原创 央... #以案件说法# 近年来,随着消费升级和二手商品市场的崛起,许多商家开始通过直播平台进行二手衣物的回收...
点赞!习水纠纷调解只进一扇门 日前,习水县人民调解委员会接到一起劳资纠纷求助。工作人员第一时间详细核查当事人诉求及案件细节,随即联...