git
创建仓库
从一个现有仓储建立纯仓库
git clone --bare ssh://git@github.com:22/QianChenglong/home.git home.git
从.git目录复制https://git.wiki.kernel.org/index.php/GitFaq#How_do_I_make_existing_non-bare_repository_bare.3F
scp -rv .git dev2:~/git/Beme4wdServer.git cd Beme4wdServer.git/ git config --bool core.bare true
从本地目录
git clone file:///path/to/repo.git/
修改远程URL
git remote set-url origin ssh://wallace@dev2:36000/~/git/home.git
查看远程信息
git remote -v git remote show origin
从远程仓库取数据,不合并分支
git fetch [remote-name]
push所有分支和tag,并跟踪
git push --all origin -u
update-index
添加可执行权限
git update-index --chmod=+x config_server
标识已纳入版本的文件不必跟踪变化
git update-index --assume-unchanged <files> git update-index --no-assume-unchanged <files>(撤销) git ls-files -v(小写字母说明设置了该标志位)
分支
查看所有分支
git branch
查看分支详情,最后一次commit
git branch -v
查看当前已经合并的分支
git branch --merged
查看当前没有合并的分支
git branch --no-merged
新建分支
git branch testing
切换分支
git checkout testing
新建分支并切换
git checkout -b issue53
删除分支
git branch -d hotfix
设置跟踪分支
git branch --set-upstream-to=origin/master master
子模块
添加模块
git submodule add ssh://wallace@dev2.beme.com:36000/~/git/ssh.git .ssh
修改url
vim .gitmodule git submodule sync
初始化
git submodule init
更新
git submodule update
管理
取消未暂存的修改
git checkout -- <file>...
reset
功能:
从HEAD拷贝到INDEX(重置暂存区),若指定PATH(文件名),则只操作指定文件(这种情况下,最好使用
git checkout -- <paths>
)git reset
将HEAD指定到COMMIT
git reset [<mode>] <commit>
–mixed [默认] INDEX同HEAD一起更新到
<commit>
,WORK不变–soft INDEX,WORK保持不变,HEAD更新到
<commit>
–hard INDEX,WORK同HEAD一起更新到
<commit>
revert
恢复到指定commit,是复制指定commit并使HEAD指向它
commit
重做上次提交,并使用上次提交信息
git commit --amend --no-edit
rm
从INDEX删除,但保留工作目录里面的
git rm --cached <paths>
强制删除已修改已暂存的文件(当前暂存区与上次提交的不一样)
git rm -f <paths>
从INDEX,WORK中删除
git rm <paths>
diff
查看当前版本与上一版本的差异
git diff HEAD~1 HEAD functions/fish_prompt.fish
查看暂存版本与工作目录中的差异
git diff
查看暂存与上一次提交的差异
git diff --cached
查看commit之间的差异
git diff <commit1> <commit2> <path>
config
配置解包内存
git config --global pack.windowMemory 256m
查看配置
git config --list
实例
同步home
git init git remote add origin ssh://wallace@112.74.81.30:36000/~/git/home.git git fetch git reset --hard origin/master
初始化并递归更新submodule
git submodule update --init --recursive