Git有远程仓库(remote repository)和本地仓库的概念。
通过
$ git clone <版本库的网址>
$ git clone <版本库的网址> <本地目录名>
可将远程仓库下载到本地文件夹
$git remote #列出远程主机名 默认为origin
$git remote -v #列出主机名和对应网址
$ git remote add <主机名> <网址>
$ git remote rm <主机名>
$ git remote rename <原主机名> <新主机名>
添加删除修改远程主机
$ git fetch <远程主机名>
$ git fetch <远程主机名> <分支名>
$ git fetch origin master
取回的远程分支被命名为远程主机名/分支名
如remote/master
此时可以依托这一远程分支创建本地分支
$ git checkout -b newBrach origin/master
或合并到本地分支
$ git merge origin/master
$ git rebase origin/master
一般来说获取远程分支就是为了合并到本地,可以直接使用git pull
$ git pull origin next
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支建立追踪关系,也就是说,本地的master
分支自动追踪origin/master
分支,于是远程分支名可以省略
$ git pull origin
$ git pull #如果当前分支只有一个主机,则远程主机名也可以省略
$ git branch --set-upstream master origin/next
可手动建立追踪关系
$ git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin master #省略远程分支名 若远程分支不存在则新建
$ git push #如果当前分支只有一个主机,则远程主机名也可以省略
$ git push -u origin master #指定远程主机
$ git push --all origin #将本地所有分支推送到远程
$ git push --force origin
强行覆盖远程分支
$ git push origin :master
$ git push origin --delete master
删除远程分支
commit之前
$ git diff ID1 ID2 #比较两次提交的差别
$ git diff --cache
git stash #暂存
git stash pop #恢复
git stash list
git clean -f #清除未跟踪文件
git reflog #查看日志
有时需要修改系统环境变量 LC_ALL= c 英语