zoukankan      html  css  js  c++  java
  • Git 联机版


    简介:

    之前研究了 Git 单机版 ( 单兵作战 ),今天来研究一下 Git 联机版 ( 团队协作 )!

    GitHub 是一个开源的代码托管平台,可以分享自己的代码到该平台上,让大家参与开发或供大家使用,等。( 也可以搭建自己的 Git 仓库,相关产品:gitlab 、coding.net )

    一、GitHub ( 使用开源的代码托管仓库 )

    1、创建 GitHub 账号:https://github.com/

    ## 创建好用户后,点击右上角 -> Settings -> Emails 这里需要验证邮件地址 ( 建议不要写网易旗下的邮箱地址,如:163 / 126 否则你会崩溃的,收不到 github 发送的验证邮件 )

    2、打开 Sehll / git Shell 生成公钥、私钥 ( Linux / Windows )

    shell > ssh-keygen -t rsa -C "wangxiaoqiangs@foxmail.com" # 全部默认回车

    3、登陆 GitHub 点击 Settings -> SSH keys -> Add an SSH key ( 有了 key 就能证明你就是你了~ ,可以添加多个 key )

    输入 Title ( 任意 )
    输入 公钥 ( id_rsa.pub 中的内容 )

    -> Add key

    4、这样就在 GitHub 安好家了,GitHub 上的内容默认公开,别人可读。

    ## Github 地址:https://github.com/wangxiaoqiangs

    5、登陆 GitHub 点击右上角的 '+' 号 -> New Repository 创建远程仓库

    Repository name : MyTest  # 仓库名称

    Description(optional) :       # 仓库描述

    Public : 只能勾选这个,不花钱的情况下

    > Create repository

    ## 现在你可以看到创建好的一个空仓库,上面有提示可以这么、那么操作!

    二、与远程仓库交互

    1、git 配置

    shell > git config --global user.name 'wangxiaoqiangs'
    shell > git config --global user.email 'wangxiaoqiangs@foxmail.com'
    shell > git config --global color.ui true

    2、创建本地库

    shell > mkdir -p /git/MyTest
    shell > git init                                        # 初始化 git 仓库
    Initialized empty Git repository in /git/MyTest/.git/
    
    shell > echo "This is a test repository" > README.md    # 生成测试文件,并提交到本地库
    shell > git add README.md
    shell > git commit README.md -m 'first commit'

    3、关联远程仓库、推送本地仓库

    shell > git remote add origin git@github.com:wangxiaoqiangs/MyTest.git # 本地仓库跟远程仓库关联
    shell > git push -u origin master # 将本地仓库推送到远程仓库,第一次推送时要加 -u 参数
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 237 bytes, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@github.com:wangxiaoqiangs/MyTest.git
    * [new branch] master -> master
    Branch master set up to track remote branch master from origin.

    ## 现在去 GitHub 就可以看到 MyTest 仓库中有 README.md 文件了

    注意:第一次执行时,会有如下提示,属正常

    The authenticity of host 'github.com (192.30.252.128)' 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
    Warning: Permanently added 'github.com,192.30.252.128' (RSA) to the list of known hosts.
    
    shell > cp /script/20150902/Student_management_system.py . # 拷贝一个文件来本地仓库,并提交
    shell > git add Student_management_system.py
    shell > git commit Student_management_system.py -m 'Second submission'
    [master a946cf0] Second submission
    1 files changed, 124 insertions(+), 0 deletions(-)
    create mode 100644 Student_management_system.py
    
    shell > git remote origin master # 将最新的修改推送到远程仓库
    Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
    Counting objects: 4, done.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 1.33 KiB, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@github.com:wangxiaoqiangs/MyTest.git
    5fdb1c4..a946cf0 master -> master

    ## 现在远程仓库中也有了新的文件了~

    4、从远程仓库克隆

    ## 登陆 GitHub 创建远程仓库

    Repository name : GithubTest   # 仓库名称

    Description(optional) :              # 仓库描述

    Public : 只能勾选这个,不花钱的情况下

    Initialize this repository with a README : 勾选,自动生成 README.md

    > Create repository

    ## 现在就创建了一个远程仓库,并生成了 README.md 文件

    shell > cd /git/
    shell > git clone git@github.com:wangxiaoqiangs/GithubTest.git # 从远程仓库克隆一份到本地
    Initialized empty Git repository in /git/GithubTest/.git/
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Receiving objects: 100% (3/3), done.
    
    shell > cd GithubTest/ ; ls # README.md 文件已经克隆到了本地
    README.md
    
    shell > 修改 README.md 文件,添加一行 Local change
    
    shell > git add README.md
    shell > git commit README.md -m 'First submission'
    shell > git push origin master

    ## 将修改推送到远程仓库

    三、分支管理

    shell > git clone git@github.com:wangxiaoqiangs/MyTest.git # 克隆一个远程库到本地
    
    shell > git branch # 查看本地分支
    * master
    
    shell > git checkout -b dev # 新建、并切换分支 ( git branch dev # 新建分支 git checkout dev # 切换分支 )
    Switched to a new branch 'dev'
    
    shell > git branch # 再次查看分支,前面有 * 的代表当前分支
    * dev
    master
    
    shell > echo 'This is a testing' > T.txt # 新建一个测试文件,并提交
    shell > git add T.txt
    shell > git commit T.txt -m 'dev commit'
    [dev 59b4093] dev commit
    1 files changed, 1 insertions(+), 0 deletions(-)
    create mode 100644 T.txt
    
    shell > git checkout master # 切换回主分支
    Switched to branch 'master'
    
    shell > git branch # 可以看到当前分支是 master,现在是看不到刚才在 dev 分支创建的 T.txt 文件的,因为还没有合并分支
    dev
    * master
    
    shell > git merge dev # 将 dev 分支合并到当前分支,也就是 master (主) 分支
    Updating a946cf0..59b4093
    Fast-forward
    T.txt | 1 +
    1 files changed, 1 insertions(+), 0 deletions(-)
    create mode 100644 T.txt
    
    shell > git branch -d dev # 删除 dev 分支,也可以不删
    Deleted branch dev (was 59b4093).
    
    shell > git branch # 仓库中再次只剩下主分支了
    * master
    
    shell > git push origin master # 将修改推送到远程仓库
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 279 bytes, done.
    Total 3 (delta 1), reused 0 (delta 0)
    To git@github.com:wangxiaoqiangs/MyTest.git
    a946cf0..59b4093 master -> master

    ## 如果合并分支有冲突的话,要自己手动编辑文件,之后重新提交 ( git add File.txt , git commit -m 'commit' )
    ## 如果有别的分支修改文件,没有合并前不要在 master 分支修改文件,否则会合并冲突
    ## 查看合并日志:git log --graph --pretty=oneline --abbrev-commit

    ## 合并分支的时候:git merge --no-ff -m "merge with no-ff" dev ,采用 --no-ff 参数,可以在删除分支后也能查到合并日志

  • 相关阅读:
    用户管理
    grep
    Java中的Map
    WinForm------Reflector反编译工具下载
    SQLServer------解决IP地址登录不了数据库问题
    WinForm------弹出MessageBox窗口的同时隐藏当前窗口
    WinForm------DockManager控件的使用方法(里面包含DockPanel控件)
    IIS------Http错误:50019,由于权限不足无法读取配置文件
    IIS------配置错误:不能在此路径中使用此配置节
    IIS------配置.Net 4.0
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/5336377.html
Copyright © 2011-2022 走看看