• git使用


    首先大家先明白git不过就是一个版本控制器 还有svn(这个需要联网才可以使用,属于集中式管理,而git为分布式管理,在本地也有版本库,这样即使一个地方的版本库出现问题也不用担心了)也属于版本控制器中的一种,而github和oschina开源中国 gitee码云 是属于远程仓库(也就是用于保管你的的代码的远程库) 一般来说你放在上面的代码都是开源的,不公开的项目存放是需要费用的,当然你也可以搭建一个属于自己的git仓库git服务器 然后将个人的项目存放在上面

    因为我本人也是一个普通的大三学生也即将进入实习,但此前还未使用git多人合作过,但也有大致的了解,接下来我会带领大家学习git

    大致流程如下:

    注册github账号 下载git

    使用ssh密匙

    git上配置个人信息

    github上创建仓库

    git推送项目到仓库上面

    还有其他各种操作

    github上搭建个人page项目展示(纯静态)

    注册github和下载git软件

    1、进入官方网站

    https://github.com

    2、找到右上角的sign in

    注册 填写个人信息即可

    3、下载软件

    上网搜git官网自行下载

    安装完后可以在桌面看到这个图标

    或者单击鼠标右键可以看到

    git bash 选项

    使用密匙ssh登录

    在未使用密匙之前每次将项目推送到github的仓库上时候都需要填写账号密码,这换谁都感觉操心所以使用ssh是最好的了

    首先如果你是第一次使用git就得先完成以下

    git init初始化一个仓库 当前路径下会生成一个隐藏文件目录.git这个是一个管理git仓库的文件夹

    注意

    当前生成的git仓库还是一个空的仓库也就是不属于任何人的仓库

    设置用户账号和邮箱

    Git config --global user.name ‘webcyh’

    Git config --global user.email ‘1992281294@qq.com’

    则下面的是设置编辑器默认使用的vim编辑器有关vim编辑器可以查看我之前编写的vim的使用 这个如果玩的好 鼠标基本用不上了

    Git config --global core.editor ‘vim’

    接下来是git创建密匙ssh

    执行命令

    ssh-keygen -t rsa -C "你的邮箱地址" 接着回车

    下面出现

     中间出现的Enter file inwhich to save 后边写的是你要保存的ssh文件路径

    接下来的要求输入passphrase 直接回车就行

    最后到保存的路径下可以看到两个文件

     第一个是私钥要妥善保管

    第二个是公钥可以公开的

    接下来要将公钥上的内容放到github上面

    将pub后缀的文件的内容复制下来

    打开github 在管理(setting)当中找到

    再次点击添加密匙

    将你刚才获取到的ssh密匙贴在上面保存就行

    判断是否成功?

    git -T git@github.com

     看到上面的信息说明你的公钥已经起作用了

    接着可以手动更改你当前git上保存的仓库地址后边我会给出命令添加地址的方式

    首先在当前目录下查看隐藏的目录可以看到.git 打开可以看到

    打开可以看到目录文件如下 

     简单介绍一下里边文件的用处

    这里为了可以查看git的使用可以使用

    git --help命令此时,可以看到显示的git的相关参数为了后面的方便使用可以将内容重定向到一个文件夹当中

    使用

    git --help>>./test.txt 输出内容到指定文件当中

    cat test.txt查看文件内容

    内容如下

    usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
               [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
               [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
               [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
               <command> [<args>]
    
    These are common Git commands used in various situations:
    
    start a working area (see also: git help tutorial)
       clone      Clone a repository into a new directory
       init       Create an empty Git repository or reinitialize an existing one
    
    work on the current change (see also: git help everyday)
       add        Add file contents to the index
       mv         Move or rename a file, a directory, or a symlink
       reset      Reset current HEAD to the specified state
       rm         Remove files from the working tree and from the index
    
    examine the history and state (see also: git help revisions)
       bisect     Use binary search to find the commit that introduced a bug
       grep       Print lines matching a pattern
       log        Show commit logs
       show       Show various types of objects
       status     Show the working tree status
    
    grow, mark and tweak your common history
       branch     List, create, or delete branches
       checkout   Switch branches or restore working tree files
       commit     Record changes to the repository
       diff       Show changes between commits, commit and working tree, etc
       merge      Join two or more development histories together
       rebase     Reapply commits on top of another base tip
       tag        Create, list, delete or verify a tag object signed with GPG
    
    collaborate (see also: git help workflows)
       fetch      Download objects and refs from another repository
       pull       Fetch from and integrate with another repository or a local branch
       push       Update remote refs along with associated objects
    
    'git help -a' and 'git help -g' list available subcommands and some
    concept guides. See 'git help <command>' or 'git help <concept>'
    to read about a specific subcommand or concept.

     接下来我会介绍git的工作流程先看下面的图片展示

    以上可以看出 主要包括三部分 工作区(也就是你当前包含.git目录的目录)、版本库 、以及暂存区  也称为索引

    暂存区位于.git 当中的index

    在这里为了更加形象的描述

    这里可以将则三部分看成三个目录

    工作区、暂存区、版本库

    比如当前在工作区添加test.txt 文件

    在使用git add * 或者 git add file1 file2 后暂存区被更新 同时同时工作区修改或者添加的内容被写入对象库当中的一个新的对象当中同时该对象的id被记录在暂存区的index上

    使用git commit 提交时 当前暂存区的目录被记录在版本库当中,同时当前master指向的就是暂存区的目录

    git reset HEAD 将master指向的目录更新到暂存区 工作区不受影响(因为此时暂存区可能已经更新了但并没有commit 更新到版本库上因此可以使用该命令恢复到上一次的版本 注意此时还没有push到远程库 但此时也算是一个版本了只是尚未开源)

    注意:

    此时删除工作区额test.txt文件后再次git add *也会更新到暂存区 此时相当于并集 覆盖掉暂存区的相同部分但暂存区原本存在test.txt 即使工作区删除test.txt但暂存区还是存在该文件应该按一下步骤执行命令

    1、首先使用 git diff查看暂存区和工作区有哪些不同如下

    此时暂存区状态如下 说明暂存区新添加一下文件 同时此时工作区也有该文件

    删除工作区的test.txt文件

    git status 说明工作区有文件被删除

     此时暂存区还是存在该文件 如果直接commit到版本库也是可以的

    接下来执行

    git status

    还是显示工作区有文件删除(工作区和暂存区目录不一致会显示出来) 这个说明上次的工作区并没有同步到暂存区在而同步到版本库因此

    下次将暂存区同步到版本库之前先使用

    以下命令

    git diff 查看暂存区和工作区的区别

    由上面我们知道暂存区还有个文件test.txt没有被删除

    执行

    git rm --cached test.txt删除暂存区的test.txt文件

    再次使用

    git diff 此时暂存区和工作区已经同步了

    这个时候就可以将内容保存到版本库当中了

    在以上过程中可能会用到一下命令但相当危险 也许一不小心前面做的内容都没了

    git checkout .    或者 filename将暂存区的内容更新到工作区   如果工作区的内容还未更新在暂存区就会丢失

    使用

    git checkout HEAD . 或者 filename可以将master指向的目录更新到暂存区和工作区

    使用

    git rm 删除暂存区内容和工作区内容

    或者Git rm --cached 只删除工作区内容

    最后还有一个比较重要的一点

    分支管理

    git branch  查看所有分支 或者查看当前所在的分支

    git checkout  test 选择当前操作的分支

    git branch  -d test 删除分支

    git branch test 添加分支

    git merge 合并分支 

    git diff 查看冲突

    git merge 再次合并

    查看日志信息

    git log 这个会详细显示最近的提交的内容以及日期

    git log --oneline 只显示每次提交的commit内容

    git log --oneline --reverse 

    查看某段时间内的提交

    git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

    给提交添加标签

    git tag -a v1.0 给这次提交添加标签

    给之前的提交贴标签

    可以这样

    首先使用

    git log --oneline 查看提交的版本 

    见前面的记录的id复制下来

    git tag -v1.0 id

    这样再次log可以看到已经打上标签了

    将当前的版本恢复到某个版本

    git reset -hard 版本id

    git push origin -f master 强制覆盖调取远程库上的版本

     后边还有如何搭建个人git服务器作为远程仓库

    后续。。。。

  • 相关阅读:
    performance benchmark : memcached vs Kyoto Tycoon
    Adhesive框架系列文章应用程序信息中心模块实现
    神奇的Redis
    使用代码测试ASP.NET MVC2执行流程
    linq2sql代码大全
    7/17博客园活动浅谈网站架构中缓存的应用所有资料
    浅谈.NET下的多线程和并行计算(十四)并行计算前言
    公司.NET 3.5培训资料分享
    mongodb分片集群(sharding with replica set)配置
    mongodb有关的研究
  • 原文地址:https://www.cnblogs.com/webcyh/p/11454695.html
Copyright © 2020-2023  润新知