Git常用操作

本文详细介绍了Git的基本操作,包括查看变更状态、历史记录,撤销提交,解决冲突,以及分支管理。重点讲解了如何查看本地仓库的变更文件、查看历史提交记录,如何撤销工作区、暂存区和已提交的更改。同时,针对冲突解决,分别阐述了远程仓库有新增无修改和修改同一文件时的处理方法。此外,还涵盖了分支的创建、切换、拉取、推送、删除以及合并等关键步骤,旨在帮助开发者更好地理解和运用Git。
摘要由CSDN通过智能技术生成

一、前言

该篇文章主要总结在平时工作中使用 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.txt

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ touch 2.txt

Administrator@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 <file>..." to include in what will be committed)
        2.txt

nothing 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 -r
  origin/HEAD -> origin/master
  origin/develop
  origin/feature
  origin/hotfix
  origin/master
  origin/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
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature
  remotes/origin/hotfix
  remotes/origin/master
  remotes/origin/release

5.2 创建和切换分支

1、创建新分支

git branch 新分支名称

示例:

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

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* master
  mybranch
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature
  remotes/origin/hotfix
  remotes/origin/master
  remotes/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
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值