git常用命令,参照廖雪峰老师的git教程

git的常用命令

写在开篇: 作为一个菜鸟,我想学习的最好的方式就是边学边记笔记,这里只是本人写的自己通过学习了廖雪峰老师的git教程之后自己做的笔记,个人理解,可能有失偏颇,如想学习更专业更权威的git知识,请移步廖雪峰老师的官网

一.创建git仓库

  1.git init  在本地创建一个空的仓库

  2.在远程创建一个项目仓库,gitHub内操作

    git remote add origin *****

  通过这两个步骤,就将本地仓库与远程仓库关联起来,然后在本地coding,提交代码到远程。也可以通过git remote -v 命令查看是否有fecth和push的权限

   

二.通过克隆的方式在本地创建仓库

      先在本地建立一个空的文件夹,在远程找到克隆的地址,有SSH和https两种协议。如果有ssh钥匙,可以通过ssh协议,如果没有配置就需要用https协议

    通过git clone ****(远程git地址) 在本地复制一份代码,这样就获得了一个已经以远程关联好了的本地仓库 

三、工作区、暂存区、版本库(图片来自廖雪峰官网Git教程

  

三.必用的三个命令

  git add *** 将本地仓库的内容提交到暂存区

  git commit -m“对本次提交的说明”  将暂存区的内容提交到版本库

  git push  将版本库里的内容提交到远程

以上的命令是我们提交代码的过程中绝对不可缺少的

四、辅助命令

  git  status  查看状态,可以通过此命令查看哪写内容有修改,哪些内容是新创建的,是在暂存区,还是再工作区,通过这个命令可以了解的很清楚

  

  git diff ***  查看不同的地方,即可以通过此命令查看具体修改了***文件哪里

  

  git log 查看历史提交记录

  

  通过这个命令,可以清楚的看到提交的次数以及每次提交的commit_id,上图的内容很多,如果需要简单一些的我们可以通过git log --pretty=oneline查看提交日志

  

  这两个命令我们都可以看到commit_id,知道看commit_id我们就可以进行版本回退了。

  当前版本是HEAD

  git reset --hard HEAD^ 回退到上一个版本

  git reset --hard HEAD^^ 回退到上上一个版本

  ......

  如果是回退到前100个版本,则git reset --hard HEAD~100

  这样的版本回退看着有些麻烦,我们还需要数一下这个前几个版本,现在有一种更简单的,我们可以看到每次提交都会有一个commit_id,我们也可以根据这个进行版本回退

  git reset --hard (commit_id)

  我们可以个根据每次的提交说明,回到我们需要回退的版本;’如果我们把git的窗口关闭了,找不到版本号了的时候,还可以通过git relog 来查看提交的id

  注:如果版本回退,被回退的版本成为最新的,它之后的修改已经查看不到了,如果想回到未回退之前的版本,可以找到最后一个提交的commit_id,通过git reset --hard commit_id返回到初始版本

五、撤销修改

  撤销修改分成3中情况:

    1.只在工作区进行了修改,没有添加到暂存区(尚未执行git add **命令)

    2.添加到了暂存区,还没有提交到版本库(执行了git add **,还没有执行git commit -m"modified something")

    3.提交到了版本库,还没有推动到远程 (执行了git commit,没有执行git  push)

针对这三种情况,我们一 一来解决

情况1有两种方法:

  ①直接在工作区进行修

  ②当我们把某个文件修改了之后我们可以用git status命令查看

  

  可以看到git checkout -- <file>命令可以把本次修改撤销

情况2的撤销方法:

   当我们git add **之后,发现有问题,那我们还是可以通过git status来查看

  

  我们可以看到这里的命令git reset HEAD <file>,执行这个命令,就回到了情况1,也就是没有git add ** 之前,参照情况一之中的②方法撤销本次修改

情况3参照版本会退,git reset --hard HEAD^即可(必须是没有推送到远程的,即没有执行git push的)

六.删除文件

  通常情况下,我们删除文件的最直接的方式就是在工作区直接将文件删除,当然我们还可以通过rm <file>命令来删除文件

  但是如果这个文件之前已经提交到版本库了,我们在工作区直接删除,会版本库和工作区不一致的情况,这时候我们就要确定这个文件是确定要删除了,还是说不小心误删仍需要保留的

  如果是确定以及肯定要删除,则可执行git rm <file> 并执行git commit -m" ",这样就讲这个文件从版本库里也删除了

  但是如果是误删,这时候工作区已经没有了,但是不用担心,版本库里仍然有这个文件,我们可以通过执行git checkout -- <file>将误删的文件恢复

注:git checkout 其实是用版本库(版本库里包括这暂存区)的版本替换工作区的版本,无论是工作区的修改或者删除,都可以还原

*****************************我是重点分割线**********************

七.分支管理

  1.查看分支: git branch

  2.创建分支: git branch <branch_name>

  3.切换分支: git checkout <branch_name>

  4.创建+切换分支:git checkout -b <branch_name>

  5.合并分支: git  merge <branch_name> 基于当前分支,将<branch_name>上的内容合并到当前分支

  6.删除分支: git  checkout -d <branch_name>

     删除一个没有被合并的分支: git checkout -D <branch_name>

对于git merge的说明:

  git merge命令用于合并指定分支到当前分支

  

这里可以看到Fast-forward信息,说明本次合并是“快速合并”,也就是直接把master指向f分支的当前提交,所以合并速度很快。我们可以通过git log --graph命令可以查看分支合并图

  

Fast forward模式下,删除分支后,会丢掉分支的信息,但是要强禁用Fast  forward模式,Git就会在merge时生成一个新的commit,这样,从历史分支上就可以看出分支信息

git merge --no-ff <branch_dev>

这里需要注意的是,通过这种方式合并之后,界面会锁死,出现Please enter a commit message to explain why this merge is necessary...

退出的方法是:①按键盘上的I键 ②按键盘上的Esc键③输入:wq,按enter键退出(详情参考链接)

这是我们可以通过git log --graph再此查看分支合并图,发现和刚才不一样了

  

  7.隐藏分支:git stash <branch_name>

  开发实况: 在开发的过程中,突然发现有一个bug需要修复,一般来时我们会重新建立一个分支来修复bug,但是目前分支的上新增的内容还不能提交,这个时候我们可以将当前分支工作区里的内容添加到暂存区(git add <file>这里是必须的,否则git stash不生效),这样我们就可以git stash <当前分支>,现在我们可以新建一个分支,进行bug修复了。

  8.恢复隐藏:git stash apply 或者 git stash pop

  当我们的bug修复完成,我们要继续coding时,我们需要恢复现场,首先我们可以通过git stash list来查看我们隐藏的工作,通过git stash apply 恢复,但是回复后stash的内容并没有被删除需要使用命令git stash drop来删除;也可以通过git stash pop ,恢复stash时也把stash的内容删除了.  

原文地址:https://www.cnblogs.com/fanlina/p/8251387.html

时间: 2024-07-30 04:14:42

git常用命令,参照廖雪峰老师的git教程的相关文章

git常用命令总结--廖雪峰老师Git教程命令总结

学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般为# 库名字" >> README.md git init  初始化一个仓库 如果没有配置需要配置 git config --list git config --global user.email "[email protected]" git config --gl

我的git学习记录------------从廖雪峰老师网站的学习总结

这篇文章只用作自我学习,部分参考来自廖雪峰老师网站 mkdir 路径/文件名(d:/test)  创建文件夹 cd  路径/文件名(cd d:/test)  进入文件夹 pwd   显示当前所出位置的路径   确保全英路径(注意) cd 仓库(repository)文件路径       eg(cd d:/test) git init   初始化空的仓库,把这个目录变成git可以管理的仓库 编写一个readme.txt文件,内容如下: Git is a version control system

廖雪峰老师的python教程中的几个学习笔记的备份

首先是学习@property的笔记 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/5/14 22:18 # @Author : 15407_000 # @Site : # @File : 使用@property.py # @Software: PyCharm class student(object): score=10 def getscore(self): return self.score def setscore

git常用命令-zqh

详细信息参考廖雪峰老师的git!!! 基本条件:安装GitHub,安装成功之后:(windows系统) 1.安装完成后,还需要一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]" 2.配置Ssh 公钥(以上步骤只需第一次时使用) a) 检查本机是否有ssh key设置:$ cd ~/.ssh 或cd .

源代码管理相关命令(Git常用命令、Nuget常用命令、CMD常用命令)

Git常用命令 源代码工具 工具名称 相关地址 Git Git for Windows VSC Visual Studio Code VSC插件(Gitlen) GitLens - Git supercharged 分支的新建与合并 假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理 返回到原先已经发布到生产服务器上的分支. 为这次紧急修补建立一个新分支,并在其中修复问题. 通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上.

git常用命令总结——你一定会用到的几个命令

git入门看廖雪峰大神的教程即可,通俗易懂:      https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000     如果想看更精简小巧的,可以看这个,git简易教程:       http://rogerdudler.github.io/git-guide/index.zh.html    上面的推荐链接,稍微花点时间,git基本的,常用的命令就差不多掌握了    我就不赘述,就只

总结自己的Git常用命令

总结自己的Git常用命令 使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考. 目录: 最基本的命令: git clone 拷贝并跟踪远程的master分支.跟踪的好处是以后可以直接通过pull和push命令来提交或者获取远程最新的代码,而不需要指定远程分支名字. git submodule init git submodule update 参考示意图 HEAD 指向当前的commit 对象(可以想象为当前分支的别名),同时也用来表明我们在哪个bran

【前端小小白的学习之路】Git常用命令整理

Git 常用命令清单. 几个专用名词的译名如下: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二.配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局

git常用命令2

git常用命令2 添加远程仓库(以github为例) 登录官方网站https://github.com,没有的话去注册一个账号吧. 然后新建一个仓库 在Repository name填入learngit,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库: 目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHu