git入门到精通

一,git简介

    1,git是世界上最先进的分布式版本控制系统。

    2,git特点

          高端大气上档次!

    3,git诞生

          Linux的创建者Linnus花费两周的时间完成的。

    4,git安装(windows)

          4.1,到git官网直接下载安装(网速慢的可以使用国内镜像)

          4.2,安装完成后还需要最后一步设置,在命令行输入: 

git config --global user.name "your name"
git config --global user.email "[email protected]"

    5,创建版本库。

          5.1,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

          5.2,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

    6,工作区 版本库 暂存区的概念

        6.1,工作区:电脑里能看到的项目目录,git add 实际就是把文件从工作区添加到暂存区。

        6.2,版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

        6.3,暂存区:Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。git commit 实际就是把文件从暂存区提交到分支

二,git相关命令

    1,添加文件,把文件添加到暂存区

         1.1,git add file(文件名,可以提交多个文件),

         2.2,git add file1 file2

    2,提交文件,把文件从暂存取提交到分支

        1.1,git commit -m "message"

    3,版本回退 git reset --hard commit_id

        3.1,git log 查看提交历史,确定会退到哪个版本。如 git reset --hard HEAD^ 或 git reset --hard commit_id

        3.2,git reflog 查看命令历史,确定要回到未来的哪个版本

    4,查看状态 git status 

    5,cat file 查看文件内容

    6,git diff HEAD -- file 查看工作区和版本库里面最新版本的区别

    7,撤销修改

        7.1,命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

        一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态

        一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

        总之,就是让这个文件回到最近一次git commit或git add时的状态。

        7.2,再commit之前,通过git reset HEAD flie 可以把暂存区的修改撤销掉,重新放回到工作区。再通过git checkout -- file 撤销工作区的修改。

        7.3,再commit之后 可以通过版本回退解决问题

    8,删除文件

        8.1,删除工作区文件 rm file.之后通过 git rm file 删除暂存区相应文件 或通过git checkout -- file 用版本库的版本替代工作区的版本。无论工作区是修改还是删除都可以“一键还原”。

    9,修改分支名称

        9.1,重命名本地分支

git branch -m old_local_branch_name new_local_branch_name

        9.2,重命名远程分支

        Step1:重命名远程分支对应的本地分支

git branch -m old_local_branch_name new_local_branch_name

        Step2:删除远程分支

git push origin :old_local_branch_name

        Step3:重新推送新命名的本地分支

git push origin new_local_branch_name

        9.3,远程分支删除之后,本地显示仍然存在的方法。

        Step1,显示所有分支

git branch -a

        Step2,只想下面命令查看远程分支与本地分支的对应关系

git remote show origin

        Step3,执行下面命令同步删除

git remote prune origin

        Step4,在查看就没有了

git remote show origin

    10,git fetch  git merge   git pull 区别

        git fetch origin 分支  从远程拉取分支但不合并

        git merge origin 分支 合并分支到当前分支

        git pull origin 分支 从远程分支拉取并合并到当前分支

    11,解决bug方法

        11.1,git stash 保存本地修改

        11.2,git stash pop 恢复本地修改,并删除保存的修改内容

        11.3,git stash apply 恢复本地修改,但不删除保存的修改内容

        11.4,可以多次git stash ,通过 git stash list 查看本地保存的修改。git stash apply/pop stash@{下标},恢复修改

    12,切换分支

        12.1,切换分支 git checkout 分支名

        12.2,切换并创建分支 git checkout -b 分支名

        12.3,删除分支 git branch -d 分支名 -D 强制删除(例如一个没有被合并过的分支)

        12.4,git branch 查看当前分支

        12.5,git branch 分支名 创建分支

        12.6,基于远程某分支创建本地对应分支

git checkout -b dev origin/dev

    13,查看分支合并情况

        13.1,查看分支合并情况 git log

        13.2,查看分支合并图 git log --graph

    14,分支管理

        14.1,git merge 加参数 合并分支并创建一个新的commit --no--ff 表示禁用 first forward(不产生新提交),通过git log     检查。

git merge --no-ff -m "merge with no-ff" dev

     15,查看远程分支

         15.1,查看远程分支  git remote

         15.2,显示更详细信息 git remote -v

    16,推送分支

        16.1,推送本地dev分支 git push origin dev       

    17,设置本地分支与远程分支的链接

git branch --set-upstream-to=origin/dev dev

    18,整理本地提交

        18.1,git rebase 把本地未push的提交历史整理成一条直线。

        


        

你可能感兴趣的:(git)