我们git clone一般只会下载git仓库中的主分支
$ git clone git://example.com/myproject
$ cd myproject
如果想要看远程有哪些分支要加-a参数
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature
remotes/origin/feature-im
remotes/origin/master
remotes/origin/newbranch
把远程分支下载到本地
$ git checkout -t origin/feature
git log -p filename
git reset c011eb3是变到这次commit之后 git revert c011eb3是撤销这次发布
git log --oneline --decorate --graph --all
如果只是本地commit了多次还没有push,用git reset git reset c011eb3 如果已经push了,要用revert,因为revert是已一个新commit去退回,不会发生冲突 git revert HEADgit revert HEAD^git revert c011eb3
git rm --cached auto-save-list/ -r
尽量避免使用reset,可以用phpstorm等工具查看历史版本 若想恢复可复制历史版本的内容到现有版本
cd hooks
sudo vi post-receive
添加如下内容
cd /var/www/demo/
unset GIT_DIR
git pull /home/git/demo.git master
给文件加权限
sudo chown git:git post-receive
sudo chmod +x post-receive
-X 删除ignore忽略的文件 -x 删除ignore忽略的文件及未跟踪的文件。 -d 删除未跟踪的文件。 -n 不要实际删除任何东西,只是显示将做什么 -f 删除东西要加上
列出现有tag git tag 添加本地tag git tag -a v1.4 -m 'my version 1.4' 将tag推送到远程 git push origin v1.5 删除本地tag git tag -d v1.5 删除远程tag git push origin --delete tag v1.5
echo "alias git='LANG=en_GB git'" >> ~/.bashrc 重启终端才有效
查看远程分支地址
git remote -v
修改远程分支地址
git remote set-url origin [url]
与本地分支建立关系
git branch --set-upstream-to=origin/master master
到项目下cat .git/config
filemode=true
的时候跟踪修改文件权限
若不想跟踪权限,执行
git config core.filemode false
git config --global core.autocrlf input
提交到demo通过git@fivecakes.com,是服务器上的git,而不是docker里的git
发布到正式通过php-docker中的git
想要git忽略文件权限一定要正确配置这两个地方的配置文件
user.email=mtide@xxx.com
user.name=mtide
core.ignorecase=false # 不许忽略文件名大小写
core.autocrlf=input # 换行模式为 input,即提交时转换为LF,检出时不转换
core.filemode=false # 不检查文件权限
core.safecrlf=true # 拒绝提交包含混合换行符的文件
core.editor=vim
core.repositoryformatversion=0 # Internal variable identifying the repository format and layout version
core.bare=false # 默认不创建裸仓库
core.logallrefupdates=true # log 所有 ref 的更新
core.precomposeunicode=true # Mac专用选项,开启以便文件名兼容其他系统
push.default=simple # 只推送本地当前分支,且与上游分支名字一致
alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit