• Git的简单使用


    一、什么是GIT

    git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

    通俗地讲,git可以备份,记录提交记录,回到历史记录,多端共享,方便团队协作。

    备注:Git、GitHub与GitLab的区别参考https://www.cnblogs.com/leeyongbard/p/9777498.html

    二、远程仓库和本地仓库的区别

    2.1用途

    I、远程仓库,主要用于代码托管,一般不用于开发工作

    II、本地仓库主要有三个阶段

    a)工作区(目前正在编写的内容
    b)git add(将工作区的内容添加到暂存区)
    c)暂存区(类似于缓存)
    d)git commit(将暂存区的内容添加到版本库中,此时会生成一个提交ID)
    e)本地版本管理结束

    2.2存储位置

    I、远程仓库在服务器上存储

    II、本地仓库在自己电脑上存储

    2.3创建个数

    I、远程仓库只存在一个

    II、本地仓库存在多个,如:用户1本地仓库,用户2本地仓库

    三、Git发展史

    CVS(集中式)

    SVN(集中式)

    Git(分布式)

    GitHub(geek社区,托管网址)

    3.1集中式和分布式的区别(具体参考:廖雪峰的集中式VS分布式:https://www.liaoxuefeng.com/wiki/896043488029600/896202780297248

    简单的理解:

    集中式版本控制系统,版本库在中央服务器。工作的时候首先需要从中央服务器取得最新的版本,然后工作,最后把内容推送给中央服务器。缺点:必须联网才能工作,一旦中央服务器出了问题,所有人都无法工作。

    分布式版本控制系统,版本库在本地仓库,即每个人工作的电脑。工作的时候没有网络要求,有网络的时候把本地的提交合并推送到远端仓库即可。

    四、注册Github账号

    打开GitHub官网:http://github.com/join   填写相关信息, 按步骤完成即可。

     五、在GitHub上创建仓库

    用GitHub账号登录,点击右上角的 + 号---New repository---输入仓库名---点击Create repository即可

    六、下载Git客户端

    6.1官网下载网址:https://git-scm.com/downloads   选择对应版本下载

    如果官网下载比较慢可以用腾讯链接: https://pc.qq.com/detail/13/detail_22693.html

    6.2下载完成后,双击安装,在安装过程中可以选择创建桌面快捷方式然后一直下一步即可完成安装

    6.3 安装好后,配置环境变量,即把git的路径粘贴在系统变量里的path里。
    6.4 打开Git Bash

    方法一:直接在桌面上点击右键,找到Git Bash

    方法二:点击开始按钮找到Git Bash

    七、设置用户信息

    Git会根据用户的名字和邮箱来记录提交。GitHub也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成自己的,名字必须是自己的真名,而不是GitHub的昵称。

    在打开的GIt Bash中输入以下命令(用户和邮箱为你github注册的账号和邮箱 )

    git config --global user.name "yourname"       //用户名
    
    git config --global user.email "邮件地址@youremail.com"         //填写自己的邮箱

    八、设置SSH key

    ssh keys的作用:用SSH keys,让本地git项目与远程的github建立联系。

    简单补充一下:ssh是加密传输。加密传输的算法有好多,git可使用rsa,rsa用的是非对称密钥(public key公钥与private key私钥)。公钥上传到github用来加密,从github发回来的数据,是用公钥加密过,这时就可以用本地的私钥来解密。

    8.1 首先检查本地是否已生成密钥,输入以下命令:
    cd  ~/.ssh

    a)如果返回的文件里有:id_rsa , id _rsa.pub,则表明密钥已经生成

    b)如果没有以上两个文件,或者提示:No such file or directory (第一次使用git),则说明没有密钥

    8.2 生成ssh key

    a)输入命令,按回车键

    ssh-keygen -t rsa -C "邮件地址@youremail.com"

      注意: 1、此处的邮箱地址,输入自己的邮箱地址;2、此处的「-C」的是大写的「C」

    b)设置密码(默认没有密码登录)

    这个密码在提交项目时使用,目的是防止别人往你的项目里提交内容。如果为空(直接回车不输入)的话提交项目时则不用输入密码。

    Enter passphrase (empty for no passphrase):<输入加密串>
    Enter same passphrase again:<再次输入加密串>

          注意:输入密码的时候没有*字样的,直接输入即可。

    c)看到这样的界面,就设置ssh key成功了

    d)查看ssh key公钥

    方法1:输入命令查看(Windows里用Git Bash,Mac用终端)
    cat ~/.ssh/id_rsa.pub

    方法2:找到本地xx.ssh文件里的id_rsa.pub,用记事本打开即可。

    如果看不到这个文件,需要设置显示隐藏文件,方法如下:
    Mac:
    在终端里输入下面命令即可让它们显示出来。
    defaults write com.apple.finder AppleShowAllFiles -bool true

    如果想恢复隐藏,可以用这个命令:

    defaults write com.apple.finder AppleShowAllFiles -bool false

    注意:

    1.执行命令后需要重启 Finder 才能看到效果。
    2.不要乱动不懂的隐藏文件,可能会损坏你的系统。
    其次在终端查找这两个文件,比如id_rsa就输入:
    find ./ -iname "id_rsa"

    最后,终端会返回该文件所在位置,然后打开finder,shift+command+g进入搜索界面,输入

    /Users/apple/.ssh

    回车,即可看到这两个文件夹。 

    Win10系统:打开桌面“此电脑”,点击左上角的“查看”选项,勾选“隐藏的项目”。

    Win7系统:打开桌面“计算机”,点击左上角的“组织-文件夹和搜索选项-查看”,勾选“显示隐藏的文件”。

    XP系统:打开桌面“我的电脑”,点击“工具-文件夹选项-查看”,勾选“显示所有文件和文件夹”。

    需要注意的是,此方法只能看到电脑上被隐藏的文件和文件夹,并不能改变它的隐藏属性。如果想让它正常显示,可以右键该文件或文件夹,选择“属性”,在常规选项卡里,取消勾选“隐藏”,然后点确定。

    e)添加SSH Key到GitHub

    在本机设置SSH Key之后,需要添加到GitHub上,完成SSH链接的设置。

    首先、登陆github系统。点击右上角个人头像的小三角---->Settings—->SSH and GPG keys —-> Add SSH key(或者New ssh key),

    其次、把本地生成的密钥(id_rsa.pub文件中key)复制粘贴到里面(key文本框中), 点击 add key 就ok了。

    最后、在Git Bash里输入命令,查看设置是否成功

    ssh -T git@github.com

         注意:git@github.com不要修改

    如果回车的结果是:

    The authenticity of host 'github.com (207.97.227.239)' can't be established.
    RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    Are you sure you want to continue connecting (yes/no)?

    输入yes看到下面的内容,就说明设置成功。

    Hi cnfeat! You've successfully authenticated, but GitHub does not provide shell access.

    若有问题,请重新设置。常见错误请参考:

    GitHub Help - Generating SSH Keys

    GitHub Help - Error Permission denied (publickey)

    九、GitHub上新建文件夹

    9.1进入自己的仓库中,点击“ Create new file ”

     9.2在创建新文件页面,输入文件夹名称,github默认为是一个文件夹的名称,后面可以再接着新建一个文件并输入名称,完成后点击“ Commit new file ”即可

      9.3返回到自己的仓库,可以看到新建好的文件夹

    十、删除GitHub上的某个文件夹

    注意:在github上只能删除仓库,却无法删除文件夹或文件, 只能通过命令来解决

    1、进入要删除的分支文件夹下右击点击Git Bash Here ,打开命令窗口
    
    2、git –help  //帮助命令
    
    3、git pull origin master   //将远程仓库里面的项目拉下来
    
    4、dir    //查看有哪些文件夹
    
    5、git rm −r -–cached target   //删除target文件夹
    
    6、git commit -m ‘删除了target’ //提交操作说明
    
    7、git push -u origin master   //将操作后的代码更新到github项目上去

     

    注:1、本地项目中的target文件夹不收操作影响,删除的只是远程仓库中的target, 可放心删除

           2、每次增加文件或删除文件,都要commit 然后直接 git push -u origin master,就可以同步到github上了

    十一、上传本地文件到GitHub 

    方法一:在GitHub上直接拖拽上传文件夹

    在GitHub上也可以上传完整的文件夹结构,直接拖拽到上传文件页面的框中即可。

    1.1点击上传文件

     1.2 直接拖拽

    直接拖拽即可上传文件夹及文件夹里面的文件。如果点击 choose your files 就只能上传单个文件。

     方法二: 使用命令上传

    Windows系统:

    2.1新建本地仓库

    常用的做法:将要文件夹变成Git可以管理的仓库

    1、pwd   //查看文件夹位置。注意:如果不是在要上传的文件夹里右击打开Git Bash,则需要查看文件夹位置,然后用命令进入要上传的文件夹里。
    
    2、git init    //初始化,初始化后会生成 .git文件夹
    
    3、git add ./    //将所有文件提交到暂存区  
    4、git commit -m "提交注释"   //提交文件到本地仓库

    2.2关联GitHub仓库

    a)在GitHub仓库里复制仓库地址

     b)建立关联

    5、git remote add origin git@github.yqb.pub:yqbsubjecttest/YQB_Android_APP_Auto_plugin.git

         注意:后面的网址是我们刚才在GitHub网站上建立的仓库位置,将上面复制的网址按住 Shift + Insert 粘贴即可

    2.3合并代码(注:pull=fetch+merge)
    6、git pull --rebase origin master   (不需要合并的时候跳过)

        注意:在将本地仓库与GitHub网站上的仓库进行关联后,便可进行推送了。但是在第一次进行推送时,需要注意的是,GitHub网站上的仓库并非是空的,我们在创建时创建了一个README文档,因此需要将两者进行合并才行。

    2.4把本地仓库提交的记录推送到GitHub上

    7、git push -u origin master  //如果有分支,可以填分支名,即推送到分支上
    注意:这个带有-u这个参数是指,将master分支的所有内容都提交,第一次关联之后后边你再提交就可以直接push就可以了。

    git push origin master

    2.5执行完上面代码后,本地代码库中多了README.md文件

    2.6回到GitHub网站刷新自己的仓库,便可以看到已将本地文件夹的内容全部同步过来了。
        注意:Git不能管理空的文件夹的,文件夹里必须有文件才能上传

    十二、在GitHub上创建新的分支

    Github上默认的分支是master

    方法一:用Git命令创建

    git branch  //查看当前所在的分支
    
    git branch 新建的分支名 //新建一个自己的分支
    git checkout 新建的分支名 //切换到新建的分支
    git branch //查看当前所在的分支,注意只有提交了代码查看GitHub上才建好新的分支

     

      方法二:在GitHub里直接点击 Branch,然后在弹出的文本框中添加自己的 Branch Name 然后点击蓝色的Create branch就可以了。

    注:1 个库可以有多个分支并行的进行开发,但是最后只有 1 个会被 merge 进来,因此当某一个分支被合并到进 master 分支后,其他的并行分支的提交都会被是作为冲突 conflict,解决这个冲突的唯一办法就是,每次做修改之前,记得更新版本库,使自己的分支与 master 分支保持一致

    十三、把Git上的代码拉到本地

    1、新建一个空文件,文件名为hhhh

    2、在进行的文件hhhh里右击点击Git bash Here

    git init    //初始化
    
    git remote add origin git@github.com:XXXX/nothing2.git    // 关联远端仓库
    
    git fetch origin dev(dev为远程仓库的分支名)     //把远程分支拉到本地
    
    git checkout -b dev(本地分支名称) origin/dev(远程分支名称)     //在本地创建分支dev并切换到该分支
    
    git pull origin dev(远程分支名称)     //把某个分支上的内容都拉取到本地

     

    十四、git命令简介

    mkdir   //XX (创建一个空目录 XX指目录名)
    
    pwd   //显示当前目录的路径。
    
    git init    //把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
    
    git add XX   //把xx文件添加到暂存区去     (git add *也是提交到暂存区 *可替换成具体要上传的文件名,*表示提交所有有变化的文件)
    
    git commit –m “XX”   //提交文件 –m 后面的是注释。
    
    git status   //查看仓库状态
    
    git diff XX   //查看XX文件修改了那些内容
    
    git log   //查看历史记录
    
    git reset –hard HEAD^   //回退到上一个版本   (如果想回退到100个版本,使用git reset –hard HEAD~100 )
    
    cat XX   //查看XX文件内容
    
    git reflog   //查看历史记录的版本号id
    
    git checkout — XX   //把XX文件在工作区的修改全部撤销。
    
    git rm XX  //删除XX文件
    
    git remote add origin 远端仓库地址   //关联一个远程库
    
    git push –u(第一次要用-u 以后不需要) origin master  //把当前master分支推送到远程库
    
    git clone 远端仓库地址     //从远程库中克隆
    
    git checkout –b dev     //创建dev分支 并切换到dev分支上
    
    git branch   //查看当前所有的分支
    
    git checkout master   //切换回master分支
    
    git merge dev  //合并分支。在当前的分支上合并dev分支
    
    git branch –d dev   //删除dev分支
    
    git branch name  //创建分支
    
    git stash   //把当前的工作隐藏起来 等以后恢复现场后继续工作
    
    git stash list   //查看所有被隐藏的文件列表
    
    git stash apply   //恢复被隐藏的文件,但是内容不删除
    
    git stash drop    //删除文件
    
    git stash pop   //恢复文件的同时 也删除文件
    
    git remote   //查看远程库的信息
    
    git remote –v   //查看远程库的详细信息
    
    git push origin master   //Git会把master分支推送到远程库对应的远程分支上
    
    git checkout origin/master –b master  //拉取远程分支
    
    Fetch //从另外一个版本库下载对象和引用
    Grep   //输出和模式匹配的行
    Mv   //移动或重命名一个文件、目录或符号连接
    Rebase   //本地提交转移至更新后的上游分支中
    Show   //显示各种类型的对象
    Tag   /创建、列出、删除或检验一个GPG签名的tag对象
    命令 git help –a 和 git help –g 可以查看命令使用方法

    十五、几个重要命令的说明

    1、git push 推送到远端仓库

    git push 命令做了什么?
    a)对于本地来说,git 将本地仓库的指定分支推送到远程仓库的相应分支,同时更新了本地仓库的远程分支
    b)对于远程来说,git 接收到本地仓库的推送请求时应该在相应分支上合并本地分支,同时更新远程仓库的相应分支

    2、冲突如何出现

    a) 我在本地修改并提交代码了
    b)另外个用户也在本地修改并提交代码到远程仓库中了
    c)我尝试git push提交代码时
    d)我的代码将出现冲突

    3、解决冲突

    a)需要使用git pull将代码拉下来,修改冲突部分的代码,并提交

    b)修改冲突内容。后将内容推送到远程仓库即可,我们不要之前到内容,需要【我接收到了冲突2222222 】推送到仓库

     4、git reset 回到历史记录

    git log  //查询提交历史
    git reset c990800e6c4e7c9a2655430d2a93bc1fdcbbf1af //此时已经回到过去,但是你还看不到,需要第三步
    git checkout .gitignore //将之前的修改放弃,真正回退到指定的提交点,该方法适用于文件为add和commit的,如果操作了这两个动作,请用reset
  • 相关阅读:
    Sublime Text安装Package Control
    HTTP,FTP,TCP,UDP及SOCKET
    Oracle数据库的导入导出
    C#.NET中数组、ArrayList和List三者的区别
    一道有趣的逻辑面试题(数独)
    C#常用命名空间
    C# Dictionary已知value获取对应的key
    C#记录程序耗时的方法
    有return语句情况下,try-catch-finally的执行顺序
    C# 拷贝数组的几种方法
  • 原文地址:https://www.cnblogs.com/gloria-5/p/12085216.html
Copyright © 2020-2023  润新知