一、基础操作:
克隆/签出 远程代码到本地
1.签出、拉取、提交代码流程
git clone https://git.xxx.com/xxx/xxx.git 签出代码(默认master分支)
2.设置个人提交信息
git config –global user.name ‘your name’ 提交代码显示名
git config –global user.email ‘your email’
3.切换至开发分支dev
git checkout [-b] dev 切换至开发分支dev(有dev分支时)
4.分支与本地分支关联,免输 [origin dev] 直接使用命令 git pull、git push
git branch –set-upstream-to=origin/dev dev 使用较新版本
git branch –set-upstream origin/dev dev 早期版本
或 修改.git/config 增加一下对应关系
5.代码提交
git status 查看当前 变动 文件
git add . 当前所有改变
git add xxx.html ss/x.html 【具体文件】
git commit -m ‘备注信息’
git pull [origin dev] 拉取新代码,有冲突解决,commit解决冲突版本
git push [origin dev] 推送本地提交到远程
Create a new repository
创建一个新git远程项目
mkdir xxx
cd xxx
git init
touch README.md
git add README.md
git commit -m “first commit”
git remote add origin git@git.xxx.cn:xx/bbc.git
git push -u origin master
Push an existing Git repository
在已有内容项目上切换远程
cd existing_git_repo
git remote add origin git@git.xxx.cn:xxx/bbc.git
免输用户名、密码
【https方式】git地址是https:https://username:password@git.xx.com/xxx.git
git remote set-url origin https://username:password@git.xx.com/xxx.git
【ssh方式】git地址是ssh:ssh://git@git.xxx.com/xxx/xxx.git
ssh-keygen -C rsa
Enter..
Enter..
Enter..
cat ~/.ssh/id_rsa.pub
copy 到 git.xxx 控制面板 上 保存
二、常用命令使用
$ git init 初始化文件夹为一个git项目目录
$ git clone https://git.xxx.com/xxx/xxx.git 签出代码
/* Git global setup 全局参数设置(初始化新项目时)*/
$ git config --global user.name "show name"
$ git config --global user.email "email"
$ git remote -v 查看远程分支
$ git remote set-url origin https://xxxx.git 设置/修改git远程地址
$ git remote rm origin 删除远程地址
$ git remote add origin https://xxxx.git 添加远程地址
$ git branch [-r][-v]查看本地分支
$ git checkout [-b] dev 切换[新]分支
$ git checkout sss.html 还原本地修改,到最新版本
$ git status 查看文件变化列表
$ git diff 查看当前版本所有修改
$ git diff xxx.html 查看具体某文件修改
$ git add [.][xxx.ss yyy.ss] 添加到提交版本
$ git reset xxx.ss 还原 git add 的文件到不加入提交列表中
$ git reset --hard [62ecb3] 把所有文件修改还原成[指定,默认最新]版本
$ git commit -m '备注' 提交本地
$ git pull [origin dev] 拉取远程代码到本地
$ git fetch 将本地库所关联的远程库的commit id更新至最新
$ git push [-u] [origin dev] 推送本地[新分支]commits到远程
$ git log 查看日志列表commit列表(包括commit未Push的)
$ git log xxx.ss 查看某文件的提交版本
$ git log -p 查看日志版本文件修改内容
$ git show 62ecb3 [sss.xx]查看某版本[文件]改变内容
$ git stash 暂存文件
$ git stash pop 还原暂存文件
$ git merge dev 合并dev分支提交版本至当前分支
$ git cherry-pick 62ecb3 单独合并某分支某次特定提交到要合并的版本到master
/* 合并某个分支上的一系列commits到master */
$ git checkout -b newbranch 62ecb3 从有新提交的分支上基于某特定commit基础上创建一个新分支
$ git rebase --onto master 76cada^ 选择特定要合并的commit到主分支
打包上线
git archive -o ../publish_packet/ec/pub_2017-12-25.zip HEAD
$(git diff --name-only 4f88edfcc0872a1aed6186fd53df7751bd69bfe6^)
git pull 与 git fetch 区别
三、代码打包
方式一:
命令打包 | 适用所有平台
git archive -o ../publish_packet/pub_2017-12-25.zip HEAD $(git diff –name-only 4f88edfcc0872a1aed6186fd53df7751bd69bfe6^)
方式二:
可视化 TortoiseGit | 适用windows
- 项目目录鼠标右键菜单 TortoiseGit -> Show log -> 选中要打包的更新版本 鼠标右键->对比文件 -> 全选文件 右键Export -> 选择路径保存
方式三:
SourceTree可视化 | 适用windows & mac
- SourceTree配置自定义导出
四、代码发布
方式1:
直接使用git命令操作(前提,服务器有使用git)
本地$ git checkout master$ git merge dev$ git push
服务器$ git pull
代码包上传服务器,解压覆盖
本地:$ scp xxx.tar.gz root@xxx:/data/www/或 用可是化工具 安装lrzsz使用 $ rz -be 上传
服务器$ tar xvf xxx.tar.gz$ \cp -rf xxx/ xx/