git 镜像下载和基本使用

git 镜像下载

git官网乌龟爬 给你一个大宝贝 下载地址看这里:git-for-windows Mirror

git 镜像下载和基本使用_第1张图片

 git 镜像下载和基本使用_第2张图片

如果是64位的window系统选择 第3个,32位就选择第1个

git安装

我就直接next就行,最多该一下安装地址

Git是什么

Git是目前最流行的版本管理系统

Git 的工作区域和流程

git 镜像下载和基本使用_第3张图片

 

Workspace:工作区,就是平时进行开发改动的地方,是当前看到最新的内容,在开发的过程也就是对工作区的操作

Index:暂存区,当执行 git add 的命令后,工作区的文件就会被移入暂存区,暂存区标记了当前工作区中那些内容是被 Git 管理的,当完成某个需求或者功能后需要提交代码,第一步就是通过 git add 先提交到暂存区。

Repository:本地仓库,位于自己的电脑上,通过 git commit 提交暂存区的内容,会进入本地仓库。

Remote:远程仓库,用来托管代码的服务器,远程仓库的内容能够被分布在多个地点的处于协作关系的本地仓库修改,本地仓库修改完代码后通过 git push 命令同步代码到远程仓库。

一般来说,Git 的工作流程分为以下几步

1. 在工作区开发,添加,修改文件。 
2. 将修改后的文件放入暂存区。 
3. 将暂存区域的文件提交到本地仓库。 
4. 将本地仓库的修改推送到远程仓库。

git使用

  1. git init

    将工作区中的项目文件使用git进行管理,即创建一个新的本地仓库

     git init
  2. git clone

    远程操作的第一步,通常是从远程主机克隆一个项目

    git clone 

    比如,克隆npm的版本库。

    git clone https://github.com/npm/npm.git

    克隆项目时如果想定义新的项目名

    git clone  <本地目录名>
  3. git remote

    查看本地仓库关联的远程仓库

    不带选项的时候,git remote命令列出所有远程主机。

    git remote
    origin

    加上-v选项,可以参看远程主机的网址。

    git remote -v
    origin https://github.com/npm/npm.git
    ​
    // 表示当前只有一台远程主机,叫做origin,以及它的网址。

    克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。

    git clone -o npm https://github.com/npm/npm.git
    $ git remote
    npm
    ​
    // 表示,克隆的时候,指定远程主机叫做npm。

    git remote show 命令加上主机名,可以查看该主机的详细信息。

    git remote show <主机名>

    git remote add 命令用于添加远程主机。

    git remote add <主机名> 

    git remote rm 命令用于删除远程主机。

    git remote rm <主机名>

    git remote rename 命令用于远程主机的改名。

    git remote rename <原主机名> <新主机名>
  4. git add

    提交工作区所有文件到暂存区:

    git add .

    提交工作区中指定文件到暂存区:

    git add <文件1> <文件2> ...

    提交工作区中某个文件夹中所有文件到暂存区:

    git add [文件夹]
  5. git commit

    将暂存区的文件提交到本地仓库并添加提交说明

    git commit -m "本次提交的说明" 

    将所有已经使用git管理过的文件暂存后一并提交,跳过add到暂存区的过程:

    git commit -am "commit_info"
    // 未跟踪的文件是无法提交上去的

    提交文件时,发现漏掉几个文件,或者注释写错了,可以撤销上一次提交:

    git commit --amend

    修复提交,同时修改提交信息

    git commit --amend -m "本次提交的说明"

    加入 --no-edit 标记会修复提交但不修改提交信息,编辑器不会弹出上一次提交的信息

    git commit --amend --no-edit
  6. git pull

    取回远程主机某个分支的更新,再与本地的指定分支合并

     git pull <远程主机名> <远程分支名>:<本地分支名>

    比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

    git pull origin next:master

    如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

    git pull origin next
    ​
    // 取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。

    如果当前分支只有一个追踪分支,连远程主机名都可以省略。

    git pull
    // 当前分支自动与唯一一个追踪分支进行合并。

    如果合并需要采用rebase模式,可以使用--rebase选项。

    $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
  7. git fetch

    git pull 不同的是 git fetch 操作仅仅只会拉取远程的更改,不会自动进行 merge 操作。对你当前的代码没有影响

    // 获取远程仓库特定分支的更新
    git fetch <远程主机名> <分支名>
    // 获取远程仓库所有分支的更新
    git fetch --all
  8. git push

    将本地分支的更新,推送到远程主机。

    如果远程仓库没有这个分支,会新建一个同名的远程分支

    如果省略远程分支名,则表示两者同名

    git push <远程主机名> <本地分支名>:<远程分支名> 
    ​
    git push origin branchname

    如果省略本地分支名,则表示删除指定的远程分支

    因为这等同于推送一个空的本地分支到远程分支。

    git push origin :master 
    ​
    // 等同于 
    ​
    git push origin --delete master

    如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机

     git push -u origin master
     
     // 将本地的master分支推送到origin主机,同时指定origin为默认主机

    如果当前分支与远程分支之间存在追踪关系

    则可以省略分支和 -u

    git push

    将本地的所有分支都推送到远程主机

    git push --all origin
    ​
    // 将所有本地分支都推送到origin主机
  9. git branch

    新建本地分支,但不切换

    git branch <分支名>

    查看本地分支

    git branch 

    查看远程分支

    git branch -r 

    查看本地和远程分支

    git branch -a 

    删除本地分支,会阻止删除包含未合并更改的分支

    git branch -d <分支名> 

    强制删除一个本地分支,即使包含未合并更改的分支

    git branch -D <分支名>  

    重新命名分支

    git branch -m <旧的分支名> <新的分支名>
  10. git checkout

    切换分支(切换分支时,本地工作区,仓库都会相应切换到对应分支的内容) $

    git checkout <分支名>  

    创建一个 a 分支,并切换到该分支 (新建分支和切换分支的简写)

    git checkout -b a

    可以看做是基于 master 分支创建一个 a 分支,并切换到该分支

    git checkout -b a master
    
  11. git merge

    git 镜像下载和基本使用_第4张图片

    merge命令把不同的分支合并起来。如上图,在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过5,6的commit记录,最后开发完成需要合入master中,这便用到了merge。

    git fetch [remote] merge
    // 之前先拉一下远程仓库最新代码
    git merge [branch]
    // 合并指定分支到当前分支 
    

  12. git reset

    重置暂存区最近的一次提交,但工作区的文件不变

    git reset 

    重置暂存区与工作区,回退到最近一次提交的版本内容

    git reset --hard

    重置暂存区与工作区,回退到最近一次提交的上一个版本

    git reset --hard HEAD^ 

    git 镜像下载和基本使用_第5张图片 

    git rebase dev,通俗的解释就是new分支想站在dev的肩膀上继续下去。rebase也需要手动解决冲突。 

  13. git revert

    git revert用一个新提交来消除一个历史提交所做的任何修改。

    git reset HEAD^            
    // 回退所有内容到上一个版本  
    
    git reset HEAD^ hello.js  
    // 回退 hello.js 文件的版本到上一个版本 
     
    git  reset  052e           
    // 回退到指定版本

    HEAD 说明:

    • HEAD 表示当前版本

    • HEAD^ 上一个版本

    • HEAD^^ 上上一个版本

    • HEAD^^^ 上上上一个版本

    • 以此类推...

    可以使用 ~数字表示

    • HEAD~0 表示当前版本

    • HEAD~1 上一个版本

    • HEAD^2 上上一个版本

    • HEAD^3 上上上一个版本

    • 以此类推...

  14. 其他命令

    git status 显示有变更的文件
    git log 显示当前分支的版本历史
    git diff 显示暂存区和工作区的差异
    git diff HEAD 显示工作区与当前分支最新commit之间的差异
    git cherry-pick [commit] 选择一个commit,合并进当前分支
    git rm 删除文件
    git mv [file] [newfile] 用于移动或重命名一个文件、目录或软连接。

 

你可能感兴趣的:(git,github)