Git 基本操作、常用命令、代码打包 及 代码发布

一、基础操作:


git clone https://git.xxx.com/xxx/xxx.git 签出代码(默认master分支)



git config –global user.name ‘your name’ 提交代码显示名
git config –global user.email ‘your email’



git checkout [-b] dev 切换至开发分支dev(有dev分支时)



git branch –set-upstream-to=origin/dev dev 使用较新版本
git branch –set-upstream origin/dev dev 早期版本

或 修改.git/config 增加一下对应关系



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

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 区别

iOS打包获取git的tag信息 git打包项目_iOS打包获取git的tag信息


三、代码打包


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

四、代码发布

方式1: 直接使用git命令操作(前提,服务器有使用git)

本地
$ git checkout master
$ git merge dev
$ git push

服务器
$ git pull


打包覆盖(服务器没有git)

代码包上传服务器,解压覆盖
本地:
$ scp xxx.tar.gz root@xxx:/data/www/
或 用可是化工具 安装lrzsz使用 $ rz -be 上传

服务器
$ tar xvf xxx.tar.gz
$ \cp -rf xxx/ xx/

Think it, do it.