#1 git教程
# 注册git服务器用户,权限-- 注意这个和客户端用户不是一样
    

# 客户端(linux)提交代码到本地仓库(简单版,了解原理)
    a.安装git
        sudo apt-get install git
        
    b.将客户端的公钥给git服务器
        -1 生成公钥
            ssh-keygen -t rsa -C "youremail@example.com"
            cat ~/.ssh/id_rsa.pub
        
        -2 git服务器添加客户端公钥
            - 管理---》编辑设置---》身份验证---》ssh公钥---》SSH Key Actions---》上传公钥
            
        -3 测试客户端是否可以免密码登录git服务器
            ssh -T git@pha.ectrend.com/source/mobile-ecmagnet.git
            
    c.创建本地git仓库
        -1 创建一个文件夹
            mkdir lzptest
            pwd
            /home/opt/lzptest
        -2 git init创建一个本地git仓库
            git init 
            
            Initialized empty Git repository in  /home/opt/lzptest/.git/
        
        -3 从上面可以看出本地仓库位置为: /home/opt/lzptest/.git/
           
        
        其实:git clone就已经相当于创建了一个本地仓库, 看到存在.git文件,就是成功创建了一个本地仓库
        并且,默认创建了master分支
        
        ps: 将文件拷贝到本地仓库
            git status
            git add .                              # 将文件提交到暂存区
            git commit -m "upload xx file"        # 将暂存区文件提交到本地仓库
            
            # 如果已经执行过,忽略
            git remote add origin https://github.com/liuzhipeng17/rest_framework_test.git  # 在本地环境创建远程仓库
            
            git push -u origin master            # 将本地仓库:当前分支文件推送到远程仓库master分支
            
            git push -u origin dev                 # 将本地创库:当前分支文件推送到远程仓库dev分支
    
    d. 创建本地开发分支pc-product-dev,
        mkdir lzp   -- lzp和.git同级目录
        cd lzp
        git checkout -b pc-product-dev  origin/pc-product-dev
    
    e. 关联远程仓库开发分支pc-product-dev
        git branch --set-upstream  pc-product-dev  origin/pc-product-dev
        
    f. 将远程分支dev的代码拉取到本地分支dev上
        git checkout pc-product-dev
        
        git pull
        
        
    d. 上传文件到本地仓库(还没有提交到git服务器呢)
        -1 在本地git仓库下(即/home/opt/lzptest/目录下)创建一个文件temp.txt
            /home/opt/lzptest/temp.txt
        
        -2 git add temp.txt  # 可多次使用git add,添加多个文件
            # 一次性添加多个文件
                git add **/**.java
        
        -3 git commit -m “add temp.txt”
        
        ps:
            git add temp.txt 是将temp.txt修改推送到本地git的暂存区
            git commit 是将暂存区所有内容提交到本地仓库的当前分支
            git push origin master是将本地仓库当前分支内容推送到远程仓库的master分支
            

            
# git服务器创建仓库(远程仓库)
    省略
    
    
# 配置本地仓库和远程仓库同步(这样以后就可以实现推送文件到远程仓库)
    git remote add origin git@pha.ectrend.com/source/mobile-ecmagnet.git

    
# 将本地仓库内容推送到git服务器远程库
    # 第一次推送本地master分支到远程仓库master分支,需要-u参数
        git push -u origin master
        
        #git push默认是将本地master分支推送到远程仓库(哪个分支,是看origin后面的参数)

    # 之后,推送本地master分支到远程仓库master分支
        git push origin master
        
    
    
# 部署环境(克隆代码)

    a.用户向git服务器提供公钥,使得下载代码时不需要提供代码
       即用户在自己的客户端执行ssh://git@pha.ectrend.com/source/mobile-ecmagnet.git, 不需要密码
    
        - 用户的公钥存放在哪
            # 公钥和私钥是一对的(xxx 和xxx.pub,比如: id_rsa和id_rsa.pub, id_rsa_osc和id_rsa_osc.pub)
            # 只要一个公钥即可
            - 公钥存放的位置,ls ~/.ssh
        
        - 如果用户没有.ssh目录,或者没有秘钥。生成一个秘钥
            ssh-keygen -t rsa -C "youremail@example.com"
            
        - 然后拷贝公钥(git服务器需要)
        
            cat ~/.ssh/id_rsa.pub
    
    b. git服务器如何使用客户端提供的公钥(目的是身份验证)
            - 管理---》编辑设置---》身份验证---》ssh公钥---》SSH Key Actions---》上传公钥
        


    c. 客户端免密码下载代码,克隆岛本地仓库
        git clone ssh://git@pha.ectrend.com/source/mobile-ecmagnet.git
    
    
    d. 安装第三包
        install -r requirements.txt
        
    
    
# 分支管理
    - 经典网站
        https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000
    
    - 远程仓库的master分支是面向提交,head指向当前分支
    
    
    - 分支管理指令
        查看分支:
            - 查看本地仓库分支
                git branch
            - 查看远程仓库分支
                git remote show origin

        创建分支:
            - 创建本地仓库分支
                git branch <name>

        切换分支:git checkout <name>

        创建+切换分支:git checkout -b <name>

        合并某分支到当前分支:git merge <name>

        删除分支:git branch -d <name>
        
        将本地当前分支推送远程仓库分支
            git push origin test
    

# 不考虑分支的拉代码和上传代码
    git pull
    git push origin master
    
    
# 考虑分支的拉代码和上传代码
    -- 但是我们在团队合作中修改bug时候或者是做一个功能的时候,
    我们肯定不会继续在主分支里面修改,得创建新的分支。
    
    假设远端仓库有分支:master和dev
    
    -- 新建一个文件夹lzp, git clone:
    
    -- 创建和git远程仓库对应的分支
        a. 创建本地仓库分支
            git branch # 先查看有本地哪些分支
            git branch pc-product-dev # 创建pc-product-dev分支
        

            
    

# ecmagnet的本地仓库 /home/vagrant/mobile-ecmagnet

# ecmagnet远程仓库http://pha.ectrend.com/

    
View Code

相关文章:

  • 2021-08-21
  • 2022-12-23
  • 2021-08-28
  • 2021-11-17
  • 2021-08-14
  • 2021-10-11
  • 2021-05-27
  • 2021-08-22
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2022-01-19
  • 2021-12-04
  • 2022-01-11
相关资源
相似解决方案