Git命令及Gerrit使用

Git基础命令

git config

在安装完Git后,需要设置一下用户名称和地址

git config --global user.name "hhh"    // 设置用户名称
git config --global user.email "hhh@126.com"    // 设置邮件地址

通过git config --list命令可查看全部配置信息

在Windows平台上可通过C:/Users/用户名.gitconfig文件查看是否配置成功

可以为某一项目单独设置

git config --local user.name "hhh"    // 设置用户名称
git config --local user.email "hhh@126.com"    // 设置邮件地址

git init

获取Git仓库有两种方法:

  1. 在现有目录中初始化仓库
  2. 克隆现有仓库

对于第一种方式,通过git init方式可初始化仓库,但请注意该命令只是新建一个.git的子目录,对于项目里的文件还未被跟踪

git clone

git clone git@github.com:hhh/leetcode.git // 通过ssh方式克隆
git clone https://github.com/hhh/leetcode.git // 通过https方式克隆

使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写

单独拉取远程指定分支

git clone -b 分支名 --single-branch <url>

git status

要查看哪些文件处于什么状态,可以用 git status 命令。

工作目录下的每一个文件只有两种状态:已跟踪或未跟踪。

已跟踪文件是指已经纳入版本控制中的文件,后续状态可能处于未修改、已修改、已暂存;未跟踪文件是指未纳入版本控制的文件。

当克隆完某个仓库时,工作目录中所有文件均处于已跟踪且未修改状态。

在这里插入图片描述

git add

当在项目中新增一个文件或者对已有的文件进行了修改,都需要将其添加到暂存区,然后提交到本地库。

git add test.txt      //后面接文件名,表示将某个文件添加到暂存区   
git add .              //后面接一个点,表示将全部文件添加到暂存区

将新增/修改的文件添加到暂存区后,此时文件处于暂存区,并未提交到本地库,还需要通过git commit命令提交到本地库。

git commit

每次准备提交前,先用 git status 看下,是不是都已暂存起来了,然后再运行提交命令 git commit

git commit -m "变更的说明信息"       //标准用法,提交到版本库并填写相关说明信息
git commit -s //添加签名

执行完后,一次提交流程走完了,只剩push到远程仓库中了。

在这里插入图片描述

git log

查看历史提交

git log           //查看历史版本
git log --graph     //以图形的方式查看历史

git reflog

当使用git reset后想让HEAD回到原来提交上,使用git reflog查看历史提交。

git reset

git reset 有三种模式:

1、–soft:回到指定版本,已 add,但尚未 commit

git rest --soft HEAD^

2、–mixed:git reset 的默认设定,可以省略不写,文件会回退到未 add(未暂存)的状态

git rest --mixed HEAD^

3、 –hard:彻底回退,工作区和暂存区均无文件

git rest --hard HEAD^

git remote

git remote -v

该命令会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL

git fetch

git fetch [remote-name]

将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中

git push

git push [remote-name] [branch-name]

在 push 之前一般需要 git pull 命令来拉取远程分支最新状态和本地分支进行合并,完成之后再 push 到远程。一般本地若是有修改,可以按照以下流程提交:

git stash
git pull
git stash apply 0
可能存在冲突,解冲突
git add <文件>
git commit -s
git push origin HEAD:refs/for/branch_name

git restore

当你想撤销已修改文件时,使用

git restore <file>

git pull

一般在本地分支的进度落后于远程分支时,需要使用该命令。

git pull [remote-name] [branch-name]

常用 git pull --rebase origin master 用 rebase 的方式进行,不会产生 merge 保持分支干净、整洁

git rm

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交

git rm 文件名

删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git clean

删除未追踪文件

git clean -fd

.gitignore文件

.gitignore 文件是用来告诉 Git 忽略哪些文件或目录的。通过编辑 .gitignore 文件,将想要忽略的文件或目录添加进去

请注意,.gitignore 文件对已经被 Git 跟踪的文件不起作用。如果之前已经提交过的文件需要被忽略,需要先将它们从版本控制中移除。

如果只想在本地库中忽略文件,而不将.gitignore 文件提交到远程仓库,可以按照以下步骤进行操作

  1. 新建.gitignore文件
  2. 编辑
.gitignore

*.pro.user
  1. 保存

Git分支

Git分支,本质上是指向提交对象的可变指针。那什么是提交对象呢?

在进行提交操作时,Git会保存一个提交对象。

git branch

1、创建分支

git branch test

创建test分支,本质上就是在当前提交对象上创建一个可移动的指针。

那当前提交对象在哪呢?其实就是HEAD指针,HEAD会指向当前所在的本地分支。

创建分支仅仅是创建出一个新的分支,但是Git并不会自动到新分支上去。

2、合并分支

git merge test

将test分支合并到当前分支上

实例:

  • 第一种情况:简单前移合并。将hotfix分支合并到master分支

在这里插入图片描述

git checkout master
git merge hotfix

结果:master指针直接前移。

在这里插入图片描述

  • 第二种情况:三方合并。将iss53分支合并到master分支

在这里插入图片描述

git checkout master
git merge iss53

结果:一次合并提交,提交对象为C6。
在这里插入图片描述

  • 第三种情况:分支合并出现冲突。

解决办法:git status查看unmerged状态文件。打开冲突的文件手动解决冲突。在解决了所有文件里的冲突之后,对每个文件使用 git add 命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决。

3、删除分支

git branch -d test

一般在该分支上的开发工作完成,并且已经合入主线master分支后,即可删除该分支。

4、查看每个分支的最后一次提交

git branch -v

git checkout

git checkout test

分支切换操作,工作目录会恢复到指定分支最后一次提交的样子。

当想撤销在工作区中的已修改文件时,执行命令

git checkout -- main.cpp

git fetch

该命令会将远程分支拉取到本地。

举例:你基于本地master分支做了工作并提交,而其他人推送更新了服务器上的master分支,此时状态如下。
在这里插入图片描述
你此时要同步工作,需要运行命令

git fetch origin

它会从中抓取本地没有的数据,并且更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。

在这里插入图片描述

注:当使用fetch拉取新的远程跟踪分支时,本地不会生成一个新分支。通过运行git merge origin/master将这些工作合并到当前本地分支上。

git rebase

整合来自不同分支的修改有两种方法:mergerebase

在这里插入图片描述

git checkout experiment
git rebase master

在这里插入图片描述

git checkout master
git merge experiment

在这里插入图片描述
目的是为了确保在向远程分支推送时能保持提交历史的整洁

git stash

git stash
git stash list

应用储藏

git stash apply --index 

Github推送代码整体流程

创建GitHub远程库

在这里插入图片描述

本地库初始化

在这里插入图片描述
创建远程库地址别名

git remote add origin [SSH地址]

在这里插入图片描述
添加代码至暂存区

git add .

查看暂存区状态

git status

提交到本地库

git commit -m "commit whole project" .

推送一下

git push origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值