zoukankan      html  css  js  c++  java
  • git命令大全

    Git常用命令

    请确保已经安装里git客户端
    • Workspace:工作区
    • Index / Stage:暂存区
    • Repository:仓库区(或本地仓库)
    • Remote:远程仓库
     

    一、一般配置

    1.查看信息

    git --version   //查看git的版本信息
    git config --global user.name   //获取当前登录的用户
    git config --global user.email  //获取当前登录用户的邮箱

    2.登录git

    /* 如果刚没有获取到用户配置,则只能拉取代码,不能修改  要是使用git,你要告诉git是谁在使用*/
    
    git config --global user.name 'userName'    //设置git账户,userName为你的git账号,
    git config --global user.email 'email'

    3.创建一个文件夹

    mkdir nodejs    //创建文件夹nodejs
    cd nodejs       //切换到nodejs目录下

    4.初始化git仓库

    git init //在nodejs文件夹下初始化一个仓库,此时文件里会到一个.git的隐藏文件夹

    5.创建忽略文件

    touch .gitignore    //不需要服务器端提交的内容可以写到忽略文件里
        /*
            .git
            .idea
        */

    6.查看目录

    ls -al

    7.创建文件并写入内容

    注:如果文件不存在则会创建文件

    echo "hello git"
     > index.html       //将'hello git' 写入到index.html中
    //单个>箭头表示写入, >>表示追加

    8.查看文件内容

    cat index.html

    二、基本操作

    1.增加到暂存区中

    git add index.html
    git add -A      //全部添加到缓存区

    2.增加到版本库中

    git commit -m '备注信息'

    3.查看版本

    git log --oneline

    4.比较差异

    //比较的是暂存区和工作区的差异
    git diff 
    
    //比较的是暂存区和历史区的差异
    git diff --cached
    
    //比较的是历史区和工作区的差异(修改)
    git diff master

    5.撤回内容

    //1.在git add之前,可以手动撤销 或者用暂存区中的内容或者版本库中的内容覆盖掉工作区
    
    //用暂存区中的内容或者版本库中的内容覆盖掉工作区
    git checkout index.html
    
    //2.在commit之前,可以把暂存区的修改撤销掉
    
    //取消增加到暂存区的内容(添加时)
    git reset HEAD index.html
    
    //3.提交到版本库,可以用版本回退

    6.删除本地文件

    rm fileName

    7.删除暂存区

    //保证当前工作区中没有index.html
    git rm index.html --cached

    8.回滚版本

    //回滚指定的一个版本 
    git log
    git reset --hard commit_id
    
    //回滚到上一个版本
    git reset --hard HEAD^

    9.回滚到未来

    git reflog
    git reset --hard commit_id

    三、分支操作

    1.创建分支

    git branch dev

    2.切换分支

    git checkout dev

    3.创建分支并切换分支

    git checkout -b dev

    4.删除分支

    git branch -d dev

    5.在分支上提交新的版本

    git commit -a -m 'dev1'

    6.合并分支

    git merge dev

    7.分支的合并后显示log

    git log --oneline --graph --decorate

    8.在分支开发的过程中遇到其他问题需要切换其他分支

    保留写好的内容在切换到主干

    git stash 

    9.在次切换分之后需要应用一下保留的内容

    git stash apply

    10.丢掉保存的内容

    git stash drop

    11.使用并丢掉

    git stash pop

    12.合并分支把树杈掰到主干上

    git rebase

    四、添加远程的仓库

    1.推送到远程仓库

    -u参数 upstream

    git push origin master -u   //获取最新代码

    2.连接远程仓库

    git remote add origin 仓库的地址

    3.查看远程仓库

    git remote -v

    4.删除远程仓库

    git remote rm origin





    git常用命令

    安装及配置:

    Ubuntu下安装:sudo apt-get install git
    配置用户名:git config --global user.name "你的名字"
    配置e-mail:git config --global user.email "你的邮箱@xx.com"

    与添加有关的:

    将当前目录变为仓库:git init
    将文件添加到暂存区:git add 文件名 [可选:另一个文件名]
    将暂存区提交到仓库:git commit –m "描述"

    与查询有关的:

    查询仓库状态:git status
    比较文件差异(请在git add之前使用):git diff 文件名
    查看仓库历史记录(详细):git log
    查看仓库历史记录(单行):git log --pretty=online 或 git log --online
    查看所有版本的commit ID:git reflog

    与撤销有关的:

    撤销工作区的修改:git checkout -- 文件名
    撤销暂存区的修改:git reset HEAD 文件名
    回退到历史版本:git reset --hard 该版本ID
    回退到上个版本:git reset --hard HEAD^
    上上版本是HEAD^^,也可用HEAD~2表示,以此类推

    与标签有关的:

    为当前版本打标签:git tag 标签名
    为历史版本打标签:git tag 标签名 该版本ID
    指定标签说明:git tag –a 标签名 –m "标签说明" [可选:版本ID]
    查看所有标签:git tag
    查看某一标签:git show 标签名
    删除某一标签:git tag –d 标签名

    与GitHub有关的:

    先有本地库,后有远程库,将本地库push到远程库

    关联本地仓库和GitHub库:git remote add origin 网站上的仓库地址
    第一次将本地仓库推送到GitHub上:git push –u origin master

    先有远程库,后有本地库,从远程库clone到本地库

    从远程库克隆到本地:git clone 网站上的仓库地址

    1.git init命令:用于初始化一个已经存在git仓库或者创建一个空的本地仓库。

             ssh连接方式在提交和拉取代码的时候不需要输入密码。

             http需要每次输入密码。

    2.git clone命令:克隆远程仓库到本地仓库

             git clone [url]  将地址上的代码克隆到当前文件夹

             git clone [url] [文件名]  新建文件夹,并将地址上的代码克隆到此文件夹

    3.git remote命令:管理相关的远程仓库。

            git remote add +ssh 连接远程仓库

            git remote --v 查看详细remote

    4.git status:显示工作区的状态

    5.git log:记录提交日志(注意只记录提交日志,存在于远程仓库与本地仓库),

    6.git reflog:记录所有分支的所有操作(所有操作,包括分支切换等,只存在使用者的本地仓库)

    7.git config:修改/查看git配置信息

            /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。

            ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。

            当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

             git config --global user.name 'aiguo.sun'    修改该用户的用户名

            git config user.name 查看用户名

    8.git diff:显示不同的提交,不同工作区域,不同分支之间的差别。

             git diff:工作区与暂存区的不同(显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异)。

             git diff --cached 与git diff --staged 显示暂存区与本地仓库之间的不同。

             git diff + 两个日志编号  显示两次提交的不同

             git diff + 两个分支  显示两个分支 的不同

    9.git add:工作区提交到暂存区(跟踪文件)

             git add 文件名,将该文件提交到暂存区

             git add *.c 把.c文件提交到暂存区

    10.git commit:暂存区提交到本地仓库

             git commit -m ‘注释’ 将暂存区的内容提交到本地仓库

             Git 提供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

             git commit -am ‘注释’跟踪过的文件提交到本地仓库

             git commit –amend 修改上次提交(如果需要新加文件,将文件add到暂存区,如果修改文件,先修改,在使用)

    11.git push:将本地仓库内容推送到远程仓库

             git push [远程主机名] [本地分支名]:[远程分支名]:即是将本地的分支推送到远程主机上分支

             git push origin master:如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

             git push origin :refs/for/master :如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master

             git push origin:如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

             git push:如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名

    12.git merge:合并分支

             git merge [分支1]:将分支1的内容合并到当前分支 

             合并分支一半需要手动解决冲突,在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决状态(译注:实际上就是来一次快照保存到暂存区域。)

             git merge -- abort :取消本次合并

    13.git fetch:拉取远程仓库到本地仓库

             此操作不会影响当前的分支,创建在origin上,例如origin/master

             git fetch:更新所有分支

             git fetch origin master:取回origin主机的master分支

    14.git pull:拉取远程仓库到本地仓库并合并到本地分支(git fetch + git merge)

    15.git branch:管理分支

             git branch:查看本地分支

             git branch -a:查看所有分支

             git branch  [分支名]:新建分支

             git branch -d  [分支名]:删除分支

             git branch --v:查看分支具体信息

             git branch --merged:查看哪些分支已被并入当前分支

             git branch --no-merged:查看尚未合并的工作

    16.git checkout:检出分支或撤销文件

             git checkout  [分支名]:切换分支

             git checkout -b  [分支名]:新建分支并转换到新分支

             git checkout – [文件名]:本地仓库的某个文件将工作区内容还原。

             git checkout + 提交日志 + 文件名:将工作区内容还原到某次提交的某个文件的内容,提交日志可以是某一次的具体hash值,也可以是Head~数字 表示当前提交的前多少次

    17.git reset:重制HEAD到指定状态

             git reset 或者 git reset -- mixed HEAD~ 将本地仓库的上一次提交保存到暂存区,不会修改工作区内容

             git reset -- hard HEAD~ 将本地仓库的上一次提交保存到暂存区和工作区(工作区内容丢失,尽量少用,不可逆)

             git reset -- soft HEAD~ 将head指针指向上一次提交,不会修改暂存区和工作区

    18.git revert:撤销一些已经存在的提交

             git revert + 版本号 :撤销到上一次操作

             与git reset -- hard区别:git revert是一次新的提交,有版本号,而git reset -- hard将以后提交的版本号全删除。

    19.git cherry-pick:把某次提交的内容合并到当前分支

             git cherry-pick + 版本号 :将这一次的修改提交到当前分支。

             如果使用git merge会将所有的修改全部提交。

    20.git rebase:用于把一个分支的修改合并到当前分支 (把在一个分支里提交的改变移到另一个分支里重放一遍)

             注:一般我们使用变基的目的,是想要得到一个能在远程分支上干净应用的补丁 — 比如某些项目你不是维护者,但想帮点忙的话,最好用变基:先在自己的一个分支里进行开发,当准备向主项目提交补丁的时候,根据最新的 origin/master 进行一次变基操作然后再提交,这样维护者就不需要做任何整合工作(译注:实际上是把解决分支补丁同最新主干代码之间冲突的责任,化转为由提交补丁的人来解决。),只需根据你提供的仓库地址作一次快进合并,或者直接采纳你提交的补丁。

             合并结果中最后一次提交所指向的快照,无论是通过变基,还是三方合并,都会得到相同的快照内容,只不过提交历史不同罢了。变基是按照每行的修改次序重演一遍修改,而合并是把最终结果合在一起。

     
  • 相关阅读:
    第59节:Java中的html和css语言
    第59节:Java中的html和css语言
    小程序版本再次发布升级
    Java中的图形界面编程-GUI
    第58节:Java中的图形界面编程-GUI
    第58节:Java中的图形界面编程-GUI
    解决微信小程序登录与发布的一些问题
    解决微信小程序登录与发布的一些问题
    第57节:Java中流的操作以及编码解码
    第57节:Java中流的操作以及编码解码
  • 原文地址:https://www.cnblogs.com/aiguona/p/10173651.html
Copyright © 2011-2022 走看看