zoukankan      html  css  js  c++  java
  • git简明教程

    第一部分:安装和配置

    1.安装git 

    [root@x ~]# yum install -y git

    2.初始化git

    [root@x ~]# git config --global user.name "test"
    [root@x ~]# git config --global user.email "test@gmail.com"

    这两条命令分别设置git账号和邮箱

    3.关联远程git仓库,此处用github做演示

    (1).首先需要在本地机器上生成一个SSH Key

    
    
    [root@x ~]# ssh-keygen -t rsa -C "test@gmail.com"

    生成成功后将会在你的主目录生成一个隐藏目录.ssh,里面包含两个文件id_rsa和id_rsa.pub。

    其中id_rsa是私钥,建议不要泄露,id_rsa.pub是公钥,

    [root@x ~]# cd ~/.ssh
    [root@x ~]# vi id_rsa.pub
    (2).登录你的github账号,将id_rsa.pub中的内容全部添加到github的ssh key中,如下图:

    其中title可以随便填写,Key就写刚才生成的

    4.将远程仓库的代码克隆到本地

    [root@x git]# git clone git@github.com:test/myfiles.git
    Initialized empty Git repository in /root/git/myfiles/.git/
    remote: Counting objects: 14, done.
    remote: Compressing objects: 100% (9/9), done.
    remote: Total 14 (delta 0), reused 14 (delta 0), pack-reused 0
    Unpacking objects: 100% (14/14), done

    注:设置代理(1080是本地shadowsocks代理软件的端口)

    git config --global http.proxy 'socks5://127.0.0.1:1080'

    第二部分:操作文件

    1.新增和修改文件

    首先在本地磁盘上添加文件,然后将文件添加到git的暂存区,再上传到远程仓库github,如下:

    [root@x git]# vi readme.txt
    [root@x git]# git add readme.txt
    [root@x git]# git commit -m "add readme file"
    [root@x git]# git push origin master
    注:如果git push时出现403错误,可先执行以下命令,再push (注意是ssh方式)
    [root@x git]# git remote set-url origin git@github.com:test/myfiles.git

    修改和新增一样,直接编辑文件后执行以上命令即可。

    2.删除文件

    首先在本地删除文件,然后删除git暂存区的文件,再提交删除

    [root@x git]# rm readme.txt
    [root@x git]# git rm readme.txt
    [root@x git]# git commit -m "rm readme.txt"
    [root@x git]# git push origin master

    3.撤销操作

    这里有两种情况:

    (1).修改了文件,但是没有执行 git commit 提交到暂存区,可以执行如下操作进行撤销:

    [root@x git]# git checkout -- readme.txt  #注意,-- 不能少,否则就是切换到另一个分支了

    (2).如果修改了文件,并且已经执行了 git commit 提交到了git的缓存区,此时若想撤销可以执行 git reset HEAD,再 git checkout -- .

    [root@x git]# git reset HEAD readme.txt
    [root@x git]# git checkout -- readme.txt

    (3).查看状态

    [root@x myfiles]# git status
    # On branch master
    # Changed but not updated:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #    modified:   readme.txt
    #
    no changes added to commit (use "git add" and/or "git commit -a")

    上面的结果表示readme文件被修改过了,但是还没有提交到暂存库中。

    4.版本回退

    如果文件文件修改完后已经 push 提交到了远程仓库,此时若要回退到以前的版本

    (1).回退到上一个版本

    [root@x git]# git reset --hard HEAD^  #回退到上面第二个版本用HEAD^^...,第一百个用HEAD~100

    (2).回退到指定版本号的版本

    [root@x git]# git reset --hard eab23e528f99cb53606554984ea1308005f8e35a   #eab23e528f99cb53606554984ea1308005f8e35a是版本号,可以前面几位,如eab23e528

    (3).查看历史版本

    [root@x git]# git log 
    如果只想看简化结果,可以加 --pretty-oneline 参数
    [root@x git]# git log --pretty-oneline

    5.查看当前文件和暂存库中文件的区别

    [root@x myfiles]# git diff HEAD -- readme.txt
    diff --git a/readme.txt b/readme.txt
    index 6102ad0..2c8b3b9 100644
    --- a/readme.txt
    +++ b/readme.txt
    @@ -1 +1 @@
    -It's my files...
    +It's my files

    如果文件相同则不会有任何回显。

    第三部分:分支管理

    第四部分:标签管理

    第五部分:自定义git

  • 相关阅读:
    40个免费flash相册程序
    Web前端技术趋势:HTML5仍不宜用作生产
    推荐25个提高网站可用性和转化率的工具
    14个可以节省你时间的CSS工具
    12个便于web设计及开发的在线工具
    推荐30个国外的精美字体下载网站
    分享10个色彩绚丽的网站
    2010最值得关注的10款小众互联网产品
    Spring RSocket:基于服务注册发现的 RSocket 负载均衡
    在游戏运营行业,Serverless 如何解决数据采集分析痛点?
  • 原文地址:https://www.cnblogs.com/tiger2soft/p/5032871.html
Copyright © 2011-2022 走看看