首页 > 其他分享 >git使用指南

git使用指南

时间:2024-02-24 21:13:10浏览次数:22  
标签:origin Git dev git master 使用指南 分支

1.基础操作

1.1 初始化repo

git init

1.2 添加更改

git add

1.3 添加到暂存区

git commit -m "update"

1.4 克隆仓库

git clone

2.版本管理

2.1 查看repo状态

git status

2.2 查看文件变化

git diff

2.3 查看当前版本的log

git log

2.4 查看所有的log

git reflog

2.5 版本回退

git reset --hard HEAD^

注意:HEAD^ 的 个数指的是回到前面第几个版本,一个代表一个版本,如果你不想输入多个^可以使用HEAD~1

当然你也可以指定提交ID来转到指定的版本

2.6 撤销修改

git checkout -- readme.txt

readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

如果你已经把修改add了

用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage)

如果你已经commit了

请用git reset --head HEAD^回到上个版本

2.7 删除文件

git rm

2.8 链接远程repo

git remote add origin [email protected]:michaelliao/learngit.git

添加后,远程库的名字就是origin

git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git remote

查看远程库在本地名字

2.9 查看远程库信息

git remote -v

2.9 删除远程库

先用git remote -v查看远程库信息

git remote rm origin

3.分支管理

3.1 创建分支并切换

git checkout -b dev

3.2 切换分支

git checkout master

3.3 查看当前分支

git branch

3.4 合并分支

git merge dev

Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

git merge --no-ff -m "merge with no-ff" dev

3.5 解决合并冲突

git status查看我们冲突的文件:

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容

Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

我们解决冲突后保存

然后add 和commit

3.6 删除分支

// 删除本地分支
git branch -d localBranchName

// 删除远程分支
git push origin --delete remoteBranchName

4. BUG分支

当你开发工作进行到一办需要修一个bug,但是你的dev分支还没commit,不是你不想commit是你的工作还没完成,如果你直接切换到别的分支,暂存区的东西会被带过去

Git提供一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash

image.png

4.1 查看stash区

git stash list

4.2 恢复stash

需要恢复一下,有两个办法:

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

4.3 在dev分支应用bug修复

同样的bug,要在dev上修复,我们只需要把4c805e2 fix bug 101这个提交所做的修改“复制”到dev分支。注意:我们只想复制4c805e2 fix bug 101这个提交所做的修改,并不是把整个master分支merge过来。

Git专门提供了一个cherry-pick命令,让我们能复制一个特定的提交到当前分支:

git cherry-pick 4c805e2

5. feature分支

添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

  1. 创建feature分支

git checkout -b feature-vulcan

  1. 开发 add & commit

  2. 切换dev分支

git checkouto dev

  1. 合并分支

git merge --no-ff -m "merge feature" feature-vulcan

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

6. 多人协作

6.1 推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库

git push origin master

如果要推送其他分支,比如dev,就改成:

git push origin dev

当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支

现在,你的小伙伴要在dev分支上开发,就必须创建远程origindev分支到本地

git checkout -b dev origin/dev

6.2 解决冲突

推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:

git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接:

git branch --set-upstream-to=origin/dev dev

标签:origin,Git,dev,git,master,使用指南,分支
From: https://www.cnblogs.com/TheGathering/p/18031576

相关文章

  • git中的中文路径显示
    在设置了git控制台编码格式为utf-8后,分别是gitgui工具,commit、log的默认编码:gitconfig--globalgui.encodingutf-8gitconfig--globali18n.commitencodingutf-8gitconfig--globali18n.logoutputencodingutf-8那么在使用gitlog、gitstatus时,会有如下的情况:"M......
  • Git创建版本库及添加远程库
    记录一下如果用Git创建一个本地仓库,在github上创建一个远程仓库,然后让这两个仓库进行远程同步。创建本地版本库(repository)首先找到一个合适的位置,在gitbash中执行$mkdirCodeRepository$cdCodeRepository$pwd/d/CodeRepositorypwd是用来显示当前目录第二步,用初始化......
  • 001 Git的3个区域及之间切换
    工作区中文件状态 在Git中,文件状态是用来描述文件在版本控制过程中的当前状态。这些状态主要包括:1.未跟踪(Untracked):文件在工作区中,但还没被Git跟踪。通常这是文件首次出现在工作目录中时的状态。 比如新增一个文件readme到工作区。2.已跟踪(Tracked):文件被Git跟......
  • isdigit函数用法、获得字符串对应的数字
    1.isdigit函数用法语法:#include<ctype.h>intisdigit(intch);使用需要添加头文件#include<ctype>。功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值。2.GetNUmber//获得字符串对应的数字doubleGetNumber(stringstr,intindex){doublenumb......
  • 前端开发环境配置 nvm | npm 镜像 | git
    安装nvmnvm是一个node版本管理工具,它可以让我们安装多个node版本并在需要的时候切换#nvm下载地址https://github.com/coreybutler/nvm-windows/releases#nvm切换镜像nvmnpm_mirrorhttps://npmmirror.com/mirrors/npm/nvmnode_mirrorhttps://npmmirror.com/mirror......
  • 拉取github仓库报错 Authentication failed for..
    remote:Pleaseseehttps://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/formoreinformation.(大家也可以看一下,是github要求使用双因子验证的通知)二、解决步骤1、首先进入GitHub,点击头像打开下拉栏,进入settings页面。2、点击进入下面的de......
  • 配置项目的git
    只需要编辑项目根目录下的.git/config文件,其中.git为根目录下的子目录。当需要操作多个来源不同仓库的项目时,需要做这个设置,比如一个来自github.com,一个来自私有仓库的。%cat.git/config[core] repositoryformatversion=0 filemode=true bare=false logallref......
  • Git 版本控制系统的完整指南
    什么是Git?Git是一个流行的版本控制系统。它是由LinusTorvalds于2005年创建的,自那时以来由JunioHamano维护。它用于:跟踪代码更改跟踪谁做出了更改编写协作Git做什么?使用仓库管理项目克隆项目以在本地副本上工作使用暂存和提交来控制和跟踪更改分支和合并允......
  • [GIT] 修改之前的commit提交的作者信息和邮箱信息 [转]
    1总体思路更改之前提交的作者信息和邮箱信息需要进行两步操作。首先,使用gitfilter-branch命令进行历史重写然后,使用gitpush--force将更改推送到远程仓库。Step1使用gitfilter-branch进行历史重写在终端或命令行中执行以下命令:gitfilter-branch--env-filte......
  • Git Install
    GitInstall‍[root@localhostsoftware]#wgethttps://mirrors.edge.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz[root@localhostsoftware]#[root@localhostsoftware]#tar-zxfgit-2.43.0.tar.gz[root@localhostsoftware]#cdgit-2.43.0/[root@localh......