- 命令行不用每次输入密码
git config credential.helper store
- 正确使用fetch/merge # git pull = git fetch + git merge FETCH_HEAD # 一般少用 git pull,推荐用 git fetch <remote> + git merge <remote>/ <refspec>,可以更灵活地控制流程(需要的时候才merge) # 注意不是 git fetch <remote> <refspec> # 注意也不是 git merge <remote> <refspec>,那是完全不同的含义
git fetch origin
git merge origin/dev
- 正确使用rebase
# 不喜欢用pull的同学用这个
git fetch origin
git rebase origin/dev
# 喜欢用pull的同学用这个 # 使用pull的潜在缺点在于,有时候你只想fetch不想merge/rebase
git pull --rebase
# 如果有冲突,修改完相关文件后,再rebase
git add <filename>
git rebase --continue
# rebase时忽略当前冲突,不做merge
git rebase --skip
# rebase完了,最后push
git push origin dev
# 放弃本次rebase
git rebase --abort
# 新建一个本地标签
git tag -a v1.0.4 -m "2015-09-26 released"
# 删除一个本地标签
git tag -d v1.0.4
# 把本地标签推送到远程服务器
git push origin v1.0.4
# 删除一个远程标签
git push --delete origin v1.0.4
# 新建分支对应某个标签
git checkout -b release_V2.8.2 v2.8.2
# 删除远程分支
git push origin --delete <branch_name>
# 查看某个标签
git show v2.1.0
#合并dev分支代码到master分支步骤
1. 获取最新代码,把本地代码跟远程代码同步
git fetch origin
git checkout dev
git rebase origin/dev
git checkout master
git rebase origin/master
2. 切换到dev分支,跟master分支做rebase
git checkout dev
git rebase master
这一步可能出现代码冲突,按上面描述处理冲突
3. 切换到master分支,跟dev分支做rebase或merge
git checkout master
git rebase dev
4. 将合并后的代码推送到远程
git push origin master
当有冲突时,强行推送
git push origin master -f
5. 在第1步,dev跟master rebase时如果有冲突,还要把最新的dev也推送到远程 (没有冲突就不用推送了)
git checkout dev
git push origin dev
#设置Meld为比较/合并工具 (前提是先要安装Meld,并且在环境变量PATH中加入执行文件的路径)
git difftool --tool=meld
git mergetool --tool=meld
#分支管理
新建分支 推送到远程
当前是master分支
git checkout -b dev
git push origin dev
其它client 切换到dev分支
git fetch origin
git branch --track dev origin/dev
删除远程分支
git push origin --delete branch_name
# 配置选项
git config http.proxy 'socks5://127.0.0.1:1080'
# 移除配置选项
git config --unset https.proxy
# 删除本地分支
git branch -d release_V2.8.2
# 回滚指定文件到某个commit
git checkout 593151a9740f47d00493f4af513255437fded47b db/platform/db/update/V0.0.1_002__data.sql