git老是记不住。每次做个笔记。
远程上有 master develop 两个分支:
git clone https://github.com/liuhf/websocket-socket.io.git 会自动关联到本地master
git branch -a mydev 从本地master检出到新的 mydev本地分支
working working working
/***目的是 提交到远程develop分支***/
第一步切换到 develop分支。 比如在本地建立一个develop。(对应的远程分支也是develop) //** git checkout -b 本地分支名x origin/远程分支名x
git checkout -b develop origin/develop
比因为在开发的保存的是在 mydev上,于是进行合并。
git checkout develop (切换到本地分支)
git merge mydev ("合并到了本地的develop")
git pull --rebase "消除不必要的commit 记录"
下面是正常的提交步骤了。
git commit -m "新的开发的功能"; //如果失败使用 -am;
git push origin develop;
git远程分支覆盖本地分支
有时候同一个分支,远程的和本地的都被修改的面目全非了,如果想要把本地的替换成远程的,用下面的命令
git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull
git 拉取具体tag(commit)
git cherry-pick v1.0.11(或者commit)
git diff
v1.0.1
v1.0.10
git add remote branch
git push --set-upstream origin mydev
git reset --soft HEAD~1 不删除工作空间改动代码,撤销commit,不撤销git add
git 提交本地分支到远程分支。
git push origin dev:romote_dev
dev是本地分支。 romote_dev是远程分支,不存在会自动创建。
git log --graph --decorate --oneline --simplify-by-decoration --all 查看分支结构
关于LF和CRLF转换
git config --global core.autocrlf input #提交时转换为LF
git config --global core.safecrlf true #推荐,拒绝提交包含混合换行符的文件
git 给指定commit 打tag
git tag -a V1.2 -m
'WebSite version 1.2' //-m 后面的是标签说明。
git tag //查看标签
git push origin --tags //推送到远程
## git 删除 远程分支:
git push origin --delete [branch_name]
## git 追踪 git remote show origin
## git 删除不同步的记录
git remote prune origin
## 远程分支自动追溯到本地分支。(有远程分支,无本地分支的情况)
git checkout --track origin/branch_name