#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/