• Git入门教程


    一.Git是什么

    ​ Git是目前世界上最先进的分布式版本控制系统

    二.SVN与Git的最主要的区别?

    ​ SVN为集中式版本控制系统,版本库是集中存放在中央服务器的,

    ​ 单独搭建SVN服务器,不能离线工作

    ​ 操作简单代码保密性较强

    在这里插入图片描述
    ​ Git为分布式版本控制系统,根本没有"中央服务器",每个人的电脑都是一个完整的版本库

    ​ 适合分布式开发,强调个体

    ​ 公共服务器压力和数据量都不会太大

    ​ 速度快,灵活

    可以离线工作

    ​ 操作复杂,代码保密性差
    在这里插入图片描述
    ​ GitHub,免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。 SVN的存储需要依赖一个服务器,而git所有的东西是放在线上的。节约成本,省时省力。

    三.安装Git

    ​ 在这个网站去下载 https://desktop.github.com/ Git最新版,windows和linux系统都有,我这边给大家是windows环境上演示

    ​ 下载之后,安装,傻瓜式操作,一直下一步 (next),安装成功之后咱们电脑的程序菜单会出现3个栏目如下图

    在这里插入图片描述

    ​ <1>git bash 支持linux命令的控制台(常用)
    ​ <2>git CMD 支持windows命令的控制台
    ​ <3>git GUI git软件图形化界面(不建议用)

    ​ 这里呢,我要给大家操作的是linux系统的,主要以Git Bash为主,使用linux命令.打开Git bash会出现,如图:

    在这里插入图片描述

    如果没有Git账号的可以自行去Github官网去注册账号,注意用户名和常用邮箱号,然后我们打开Git bash后还要做些设置.

    ​ git config --global user.name "你的昵称"
    ​ git config --global user.email "你登陆git的邮箱"

    在这里插入图片描述
    然后可以通过 git config --list 查看配置列表

    以下是git命令行中常用的操作命令:

    cd E:进入相应的磁盘
    
    cd /e/test/js 进入文件夹
    
    cd .. 返回上一层目录
    
    mkdir 创建目录
    
    pwd 显示当前工作目录的全路径
    
    touch test.js     新建某某文件
    
    vi test.js 编辑xx文件, 按i切换到编辑模式,按esc切换到命令模式,输入冒号:wq 回车,保存并返回
    
    rm  test.js 删除文件
    
    ls  查看当前目录的所有文件
    
    clear  清屏
    

    在这里插入图片描述
    ​ 那上述的准备工作已经做好了,我们来正式的使用git,最重要的步骤来了,我们先通过cd /e/test/js (你的文件路径)进入地址然后使用git init命令初始化当前项目,此时你的目录下会多出一个.git的隐藏文件(设置隐藏文件可见),存储着当前项目所有的版本信息.特别注意,不要胡乱的动这个.git的文件夹,不要管它.

    ​ 我们在当前目录下,新建一个readme.md的文件,里面随便写点内容便于我们后面操作.
    在这里插入图片描述

    四.操作文件,提交到git服务器

    你的本地仓库由 git 维护的三棵“树”组成:  

    ​ 第一个是你的 工作目录,它持有实际文件;  

    ​ 第二个是 暂存区(Index),临时保存你的改动;  

    ​ 最后是 HEAD,指向你最近一次提交后的结果。

    现在来开始使用git命令操作版本控制工具上面我们初始化了当前项目,有了.git文件,也测试新建了一个readme.md的文件,我们现在通过命令操作

    1.gid add 文件名 提交到暂存区

    ​ git add -u 提交所有被修改(modified)和被删除(delete)文件,不包括新建文件

    ​ git add . 提交所有新文件和被修改的文件,不包括被删除的文件

    ​ git add -A 提交所有变化

    ​ git add * 提交所有变化(忽略.gitignore)

    ​ 注意:在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

    2.git commit -m "提交的备注"

    ​ 把刚才的提交到暂存区的文件,提交到本地仓库中

    3.查看commit状态 git status

    ​ 使用git status 查看当前工作目录和暂存区的状态

    ​ 当出现 nothing to commit, working tree clean 时,说明咱们刚才的提交是ok的.

    ​ 我们再修改下readme.md中的内容,并重新使用git status

    ​ 会出现一些变化,git告诉我们,我们本地进行了一些修改,但是这些修改并没有被提交

    4.查看修改内容,与上版本文件对比 git diff

    ​ 可以查看工作区和暂存区代码的区别

    ​ 使用git diff命令,会出现更改信息,会把刚才咱们修改的内容明显标出来

    ​ 那我们还跟上面操作一样,先add ,然后在commit

    5.恢复到工作区 git checkout 文件名(单文件)

    ​ 比如我们再修改了readme.md的文件,写了很多不想要了,然后又想恢复到我们暂存区的那个一个版本文件,可以使用 git checkout readme.md,立马恢复到上次提交到暂存区的文件

    ​ 也可以 git checkout [版本号] 恢复的文件

    ​ git checkout 56sf6ss readme.md(注意,下面可以获取前7位的版本号)

    6.查看日志和版本git log git reflog

    ​ 可以查看版本日志,查看之前之前提交过的所有的历史版本

    ​ git log 查看完整的版本号(hash值)

    ​ git reflog 查看前7位的版本号(hash值)

    7.回退版本(恢复到指定任意版本) git reset --hard HEAD^(多文件)

    git reset --hard HEAD^ 回退到上个版本
    git reset --hard HEAD^^ 回退两个版本
    git reset --hard 56sf6ss 回退到指定版本

    8.删除 rm 文件名

    ​ 先rm readme.md (本地删除)

    ​ 通过git status 查看状态 会说本地工作区和暂存区的区别,删除了文件

    ​ 此时如果我们继续提交被删除的文件可以执行下面操作

    ​ git add -A 再git commit -m "删除了刚才的readme.md文件"

    ​ 那现在版本库上的也没有了,你可以通过git checkout readme.md试一下,报错,会说找不到文件路径

    ​ 如果不想提交,放弃刚才删除的,可以通过git reset --hard 版本号 来恢复文件

    ​ 上面8项操作,解决了我们本地工作区到暂存区的增加,删除,修改,退回,恢复等操作.

    ​ git init -> 创建版本库

    ​ git add 文件名 ->添加到暂存区

    ​ git commit -m "提交注释" ->提交到本地仓库

    9.创建密钥(一台电脑配置一次) ssh-keygen -t rsa -C "邮箱账号"

    a.首先检查电脑是否曾经生成过密钥

    ​ cd ~/.ssh 回车

    ​ ls 回车

    ​ 如果打开该文件加为空,则表示没有生成过密钥进入b步骤 (~表示根目录)

    b.生成密钥

    ​ ssh-keygen -t rsa -C "你注册git使用的邮箱"

    ​ 命令要求输入密码,不用输,三个回车即可.执行成功之后,主目录.ssh目录下会生成 两个文件:id_rsa 私钥文件,id_rsa.pub 公钥文件

    ​ 如果找不到两个文件,可以这样找到

    ​ windows电脑通过 C盘 => 用户 => 你名字的用户 => .ssh隐藏文件夹

    c.去Github配置密钥

    ​ 登陆github帐户点击头像,然后 Settings -> 左栏点击 SSH and GPG keys

    ​ -> 点击 New SSH key在远程仓库gitlab上添加title和key,和本地的一致。 title可以自己取一个容易区分的名字,key为id_rsa.pub中的内容(全部复 制,可用cat id_rsa.pub命令打开)

    ​ 配置了ssh秘钥,使用远程仓库的 ssh 地址提交

    10.连接远程库 git remote add origin 项目地址

    ​ git remote add origin https://github.com/lechar0327/GitTest.git

    11.将本地的库推送到master分支上(推送到服务器) git push -u origin master

    git push -u -f origin master

    ​ 提交到远程仓库,这个命令中的 -f是强制推送,因为远程仓库只有初始化文件,所 以强制推送上去就行了,不加-f 会报当前分支没有远程分支,强制推送可以覆盖master, 这样就完成了第一次提交的步骤.

    ​ 【注】windows电脑会要求输入账号和密码(输入github账户的账号密码)

    ​ git remote -v 查看远程仓库地址

    ​ 然后去服务器上查看是否推送成功.

    ​ 那以上11个步骤,就完成了我们从本地初始化,到添加到暂存区,然后提交,最后连接远程库,并且推送成功的所有操作了,这上面很多都是只需要配置一次的,当第二次开始的时候,就不需要那么多步骤了.只需要

    ​ <1> 工作区 => 暂存区
    ​ git add *
    ​ git commit -m ""
    ​ <2> 检查暂存区的状态
    ​ git status
    ​ <3> 将暂存区的数据推送到远程仓库去
    ​ git push

    12. git push 推送到远程仓库

    ​ 将暂存区的文件全部推送到远程仓库

    ​ git push (提交master分支 到远程仓库)

    ​ git push origin 分支名 (提交其他分支 到远程仓库)

    ​ 注意:如果我们在执行上述 第10步操作时,报错了,提示fatal: remote origin already exists.这个错误信息,我们解决办法如下:

    ​ 1、先输入$ git remote rm origin

    ​ 2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会 报错了!

    ​ 3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

    ​ 4、找到你的github的安装路径,我的是 C:UsersASUSAppDataLocalGitHubPortableGit_ca4ec8etc

    ​ 5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就 好了!

    五.拉取远程仓库数据

    1.从服务器克隆数据 git clone

    ​ git clone https://github.com/lechar0327/GitTest.git

    ​ 获取远程仓库的更新数据

    ​ git fetch:相当于是从远程获取最新到本地,不会自动merge

    ​ git pull:相当于是从远程获取最新版本并merge到本地

    ​ git pull origin 分支名 更新某个远程分支到本地

    六.分支操作

    ​ 1.查看分支 git branch

    ​ 2.创建分支 git branch 分支名

    ​ 3.切换分支 git checkout 分支名

    ​ 4.创建+切换分支 git checkout -b 分支名(合并2和3的操作)

    ​ 5.提交分支上的代码 git add . git commit -m "提交注释"

    ​ 6.合并分支(需要切换到主分支进行合并)

    ​ 7.合并完以后就push ,先pull一次在git push ,也就是先更新在提交

    ​ 8.删除分支的命令 git breach -d 分支名字

    七.设置git忽略文件

    ​ 1.创建文件:.gitignore

    ​ 2.忽略文件列表
    以斜杠“/”开头表示目录;
    以星号“*”通配多个字符;
    以问号“?”通配单个字符
    以方括号“[]”包含单个字符的匹配列表;
    以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

    ​ .DS_Store
    ​ node_modules/
    ​ /dist/
    ​ npm-debug.log*
    ​ yarn-debug.log*
    ​ yarn-error.log*
    ​ #Editor directories and files
    ​ .idea
    ​ .vscode
    .suo
    ​ * .ntvs

    ​ *.njsproj
    上面是操作Git的基本流程,用于工作之中也够用了,后面如果有补充的我会做补充,希望大家多多关注!

  • 相关阅读:
    关于[一个基于WF的业务流程平台]表设计的说明
    这几年开发工作流的感受
    在Silverlight中绘制贝塞尔曲线
    WF工作流设计器(WPF版)
    基于WF设计业务流程平台_消息收集、通知接口
    基于WF设计业务流程平台_数据冲突
    NET4.0 CTP 中的WF
    NET 4,3,2,1其实什么也没有变
    基于WF设计业务流程平台_权限在流程模板外部映射
    无题
  • 原文地址:https://www.cnblogs.com/lechar/p/12466845.html
Copyright © 2020-2023  润新知