git在工作中的用法总结-使用篇

上一篇介绍了git的环境安装配置,本篇对git在工作中常用的用法进行总结,已满足大部分的日常工作需求,对于其他的一些git命令用法在今后使用到时我也会更新上来,文中如有错误,欢迎大家指出来,谢谢~

1、创建代码仓库 git init

2、加入所有目录到仓库 git add .

3、提交 git commit -m "first commit" 简写 git ci

4、查看git提交状态 git status 简写 git st

5、借助diff查看具体修改的地方 git diff 修改的文件路径 -号表示删除的部分 +表示添加的部分

6、撤销未提交的文件 git checkout 文件路径 简写 git co 如果文件已经add,checkout无法撤销,先取消添加 git reset HEAD 文件路径,然后再checkout就ok

7、查看记录 git log 记录太多,如果想只查看一条,通过id来查看 git log 记录id -1 -p (-1表示只查看一条,-p表示查看具体修改了什么内容)

8、分支操作

更新分支

git fetch -p

查看分支

git branch -a   查看全部分支
git branch 查看本地分支

新建分支

git branch new_branch。新建本地分支
git checkout new_branch.  切换分支
git push origin new_branch。推送到远程仓库

删除分支

git push origin --delete branch。 删除远程分支
git branch -d branch。 删除本地分支
git branch -D branch。   强行删除本地分支(如果分支代码有修改,会提示需要合并分支)

合并分支 例如将远程master分支合并到当前mis_pro_content分支

git fetch --all
git merge origin/master
git push origin mis_pro_content

9、添加忽略文件 有些文件或目录是不需要提交到git中我们可以将其添加到.gitgnore文件中,这样在提交的时候不会提交,比如node_modules依赖文件

根目录下新建.gitgnore文件,将node_modules/添加到文件中

1、远程下载代码到本地 git clone https://github.com/example/test.git

2、修改提交代码后需同步到远程版本库上 git push origin master (origin指定远程git版本库的地址)

master部分指定的是同步到哪个分支上

3、同步远程修改的内容到本地 ,2种方式可以操作(fetch和pull)

--fetch方式同步

将远程的同步到本地 git fetch origin/master(同步下来的内容会放在分分支origin/master上) 查看远程版本库修改哪些了内容 git diff origin/master 合并分分支origin/master到主分支上 git merge origin/master

--pull方式(将远程代码同步并且合并到本地,相当于将fetch和merge一起执行)

git pull origin master

  1. 糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作!
  2. 彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码!
  3. 刚才我发现之前的某次提交太愚蠢了,现在想要干掉它!

针对场景1,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”!

  • 情况一,文件被修改了,但未执行git add操作
git checkout fileName
git checkout .
  • 情况二,文件执行了git add操作,但想撤销对其的修改
git reset HEAD fileName  取消暂存
git checkout fileName  撤销修改
  • 情况三 ,已在本地进行了多次git commit操作,现在想撤销到其中某次Commit
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]

例如:

git reset --hard HEAD^。  回退到上一次版本
git reset --hard 3628164。  回退到指定的某个版本

情况四,将test分支合并到了当前分支,但是想撤销上一次的合并

git merge --abort

针对场景2,已进行git push,即已推送到“远程仓库”中。我们将已被提交到“远程仓库”的代码还原操作叫做“回滚”

  • 情况一,删除最后一次远程提交

方式1:使用revert

git revert HEAD
git push origin master

方式2:使用reset

git reset --hard HEAD^
git push origin master -f

二者区别: revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在; reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

  • 情况二,回滚某次提交
# 找到要回滚的commitID
git log
git revert commitID

git stash 本地修改暂存
git stash pop  还原本地修改
git stash list  查看暂存信息

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,先stash,使返回到自己上一个commit,改完bug之后再stash pop,继续原来的工作

git stash pop 重新应用缓存的stash

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,

’git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

  • 情况一,不是一个git仓库
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:fozero/vue-nuxt-ssr.git   关联远程仓库,需先在远程仓库创建一个同名仓库
git push -u origin master
  • 情况二,已经是一个本地git仓库
git remote add origin git@github.com:fozero/vue-nuxt-ssr.git   关联远程仓库
git push -u origin master

注: 若新建远程仓库的时候自动创建了README文件,则在此之前先pull下来,git pull --rebase origin master,避免在push时报错

1、分支合并时报错

https://stackoverflow.com/questions/2314437/resolve-conflict-delete-modify-in-git
git merge origin/feature-wuj-uinfo

CONFLICT (modify/delete): application/views/preorderg3/newshare.html deleted in HEAD and modified in origin/feature-wuj-uinfo. Version origin/feature-wuj-uinfo of application/views/preorderg3/newshare.html left in tree.
CONFLICT (modify/delete): application/views/preorderg3/newpic.html deleted in HEAD and modified in origin/feature-wuj-uinfo. Version origin/feature-wuj-uinfo of application/views/preorderg3/newpic.html left in tree.
Auto-merging application/controllers/api/Reserve.php
Automatic merge failed; fix conflicts and then commit the result.

以上错误大致是说那个文件已经被删除了,我这边还存在,通过rm将冲突文件删除解决该问题

git rm application/views/preorderg3/newshare.html
git rm application/views/preorderg3/newpic.html

有时候可以看到别人提交的时候会显示emoj表情 ,其实我们在提交的时候也可以使用,对于不同的提交类型 ,使用不同的emoj表情,这样看起来更加的一目了然

在commit时,通过在emoj前面加‘:’,如:

git ci -m ':bug: fix click of get with no feedback'

更多的emoj表情可以查看

  • https://github.com/carloscuesta/gitmoji/
  • https://gitmoji.carloscuesta.me/
  • https://zhuanlan.zhihu.com/p/29764863

更多的git命令用法可以查看

  • https://git-scm.com/docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Git安装和使用 Git安装和使用 刚开始用git的小白适用,,转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。 目的:通过Git管理g
fatal: remote origin already exists.解决方法 第一个问题git remote add origin**************fatal: remote origin already exists.(报错远程起源已经存在。)上网查了下,有很多小白遇到过这个问题,以
git常用命令(二)查看历史记录 git log [--pretty=oneline] [ --oneline] / reflog Eniac-W 于 2020-10-18 18:12:38 发布 2368 收藏 3分类专栏: git 文章标签: git版权 git专栏收录该内容10 篇文章0 订阅
git之如何把本地文件上传到远程仓库的指定位置 git专栏收录该内容2 篇文章0 订阅订阅专栏2018.11.26添加内容: 对于自己的仓库,我们建议将远程仓库通过clone命令把整个仓库克隆到本地的某一路径下。这样的话我们从本地向远程仓库提交代码时,就可以直接把需要提交的文件拖到我们之前克隆下来的
代码规范之 lint-staged 在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测暂存区的文件,所以速度很快。 安装与配置 安装husky和lint-staged: yarn add hu
方法:1、文件没有git操作时用“git checkout--文件”命令还原;2、文件提交到暂存区时用“git reset HEAD”命令回退当前版本还原;3、文件提交到仓库区时用“git reset HEAD^”命令回退上一个版本还原。 本文操作环境:Windows10系统、Git2.30.0版、
使用Git将本地文件提交到远程仓库 一 操作准备条件: git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存。 解决办法如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使用命令
GitHub克隆代码到本地全教程 因为工作原因更换电脑,想要从GitHub上拉取代码的话需要重新配置ssh keys,时间过的久了怕忘记就把步骤给记录下来。 具体步骤: 1.安装git 这我就不说了 2.在TortoiseGit的安装文件中找到 puttygen.exe应用程序 ,默认应该都是 :C
github上传项目的时候报出git@github.com: Permission denied (publickey). fatal: Could not read from remote repo 前言 会不会有程序员小伙伴在刚开始使用github的时候上传项目的时候困难重重,但是又基于自己本身
查看历史 git log --pretty=onelinegit log (然后一直按enter键) 一个是切换根据历史里面的id切换git checkout ID git log 需要不断按enter键出来历史提交记录 git log --pretty=oneline 是直接出来历史记录
Git工作原理及常用命令 欧怼怼发布于 2020-12-08 git介绍 git(读音/ɡɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 git
git git提交项目的具体流程 git项目流程:以下主要有3个角色:负责人、成员A、成员B(若负责人也要修改代码,则负责人同时兼任2个角色:负责人、成员) 主要负责人:搭建项目架构且提交到git上1.github官网登录后,新建仓库,生成地址url,复制线上仓库.git结尾的地址url2.在一个空
git上传项目全部流程 一、下载git 进入网址:https://git-scm.com/downloads; 点击中的Download 2.16.0 for Windows; 在中选择蓝色字段点击,根据电脑64或32位选择适合的下载,点击即可进行下载,下载完成后傻瓜式安装,一直点击下一步即可完成安
Your local changes to the following files would be overwritten by checkout问题的解决 于 2018-07-17 11:38:27 发布 Git 的本地版本管理有三个部分 名称	说明工作区(Working Directory)	
Git配置SSH Keys步骤使用教程 1.若是首次安装使用git,先配置用户名称和邮箱(如果有就不需要配置) 打开Git Bash,输入 git config --global user.name "姓名"git config --global user.email &quot
基本配置完成,接下来就是上传你要上传的项目了。 1、初始化git 进入你要上传的项目的文件夹,在文件夹内鼠标右击,选择“Git Bash Here”打开git命令行,输入: $ git init 目的是初始化git,并且会创建个“.git”文件夹,里面有个“config”就是用来保存远程厂库路径地址
本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“gitee如何上传代码”吧! ...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作中,相信很多人在gitee如何下载仓库里的项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Gitee上更新代...