git


    日期: 2020-10-11   标签: publish
  === === === ===



创建仓库



从svn 创建
git svn clone svn://localhost:5177/trunk/Tboy Tboy.git

从本地仓库创建
git clone --bare xalg xalg.git

使用scp -r 拷贝到服务器,在服务器上执行
cd xalg.git
git init --bare --shared

创建空仓库
建一个空目录,在该目录下执行:
git --bare init


如果git init 的时候没有加 --bare
需要执行
git config --bool core.bare true


关联分支


git push
不指定远程分支,默认推送到关联分支上

设置:
命令格式:
git branch --set-upstream-to=origin/remote_branch your_branch

其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。
比如xalg 的
git branch --set-upstream-to=origin/master master

查看关联分支
git branch -vv

git remote show origin

git status中文

git config --global core.quotepath false


新建 tag
git tag -a kx-0.1.1 -m "已经过长期使用"

显示tag
git show kx-0.1.1

将tag处代码check到一个新的分支上 git checkout -b branch_name tag_name

新建分支

删除分支
git branch -d kx_spinner

合并到kx
git checkout master
git merge kx

kivy

的分支


kx 可使用的稳定的分支
master 开发的,从kivy/kivy 合并也先合并到此分支上



放弃所有修改
git checkout -f

保留现场
git stash
git stash list
git stash clear

git stash pop stash@{num}
最上层的
git stash pop


不用提交
git update-index --assume-unchanged xsys.py

resset 回退后强制提交
git push origin HEAD --force #远程提交回退



本地创建一个新项目



比如xview

1,在本地
git init

2,在远端
新建xview.git
git init --bare --share

3,在本地
git remote add origin xxh@xcloud:/data/gitdb/xview.git
git add .
git commit . -m "add "
git push --set-upstream origin master

拆分仓库


将xsym拆分出来

先在xcloud上建一个空仓库,clone到本地

在本地py3:
git subtree split -P xsym -b xsym

在本地xsym:
git pull ../py3 xsym

这样py3的xsym分支就到了 xsym仓库。


合并提交



git rebase -i HEAD~3
这里3为合并的提交次数
编辑rebase
将后面的几个pick 改为s( squash),若使用pick,则将几个提交作为分组到一组,但原来的提交也可以看得到。

wq 保存 rebase,保存提交信息,完成合并。

若出现异常
git rebase --edit-todo 编辑
git rebase --continue 继续
git rebase --skip 丢弃冲突(一般不用)
git rebase --aobrt 退出

如果被合并的已push 合并后,不能git pull 再推送,需要git push --force.或者最新的不要squash合并到老的提交,而使用pick比较合适  ,这样最新的commit 还会保留

条目是由老到新执行,最新的最底下。