须指定一个主机名。git remote命令就用于管理主机名。
c.1)列出所有远程主机
git remote
c.2)查看远程主机的网址。
git remote -v
origingit@github.com:jquery/jquery.git(fetch)
origingit@github.com:jquery/jquery.git(push)
上面命令表示,当前只有一台远程主机,叫做origin,以及它的网址。
c.3)自定义主机名
克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。
git clone -o jQueryhttps://github.com/jquery/jquery.git
git remote
jQuery
上面命令表示,克隆的时候,指定远程主机叫做jQuery。
c.4)查看某主机的详细信息
git remote show
c.5)添加远程主机
git remote add <主机名> <网址>
c.6)删除远程主机
git remote rm <主机名>
d、fetch
一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。
d.1)取回全部分支
git fetch <远程主机名>
d.2)取回指定分支
git fetch
e、push
将本地分支推送到远程主机
git push <远程主机> <本地分支>:<远程分支>
将本地分支(比如master)推送到远程主机的某一分支上(比如master)
git push xxx.git branch1:branch1
将本地的branch1分支推送到xxx.git的branch1,如果xxx.git上不存在branch1,就会被创建一个。
git push xxx.git test:master
将本地的test分支推送到xxx.git上,并作为其master分支
git push xxx.git :test
推送一个空分支到xxx.git的test分支,即删除xxx.git上的test分支
默认情况下,git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
1.push单个tag,命令格式为:git pushorigin [tagname]
例如:
git push origin v1.0#将本地v1.0的tag推送到远端服务器
2.push所有tag,命令格式为:git push[origin] --tags
例如:
git push --tags
或
git push origin --tags
f、pull
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
git pull <远程主机名> <远程分支名>:<本地分支名>
此处与push命令刚好相反。
git pull origin next:master
取回origin主机的next分支,与本地的master分支合并
5、文件归档 git archive
a、基于最新提交建立归档文件:
git archive -o latest.zip HEAD
b、只将目录 src和 doc归档
git archive -o partial.zip HEAD src doc
6、git tag
git tag有两种形式:轻量型和带注释的标签。
列出所有标签
git tag
创建轻量级标签
git tag
创建带注释的标签
git tag–a
-m
查看某tag处的文件
git checkout tag_name
此时,可查看该tag时刻的文件,但处理一种分离的分支(detached),不能够提交,仅能查看,拷贝。若需要在此tag基础上修改文件,可从此处新建一个分支:gitchechout–b
tag_name,然后在新建的分支上工作,即可提交。
查看某标签:
git show tag_name
7、附:常用命令
git配置(config):
gitversion#查看版本
gitconfig-l#查看当前配置
gitconfig --global user.name "Dean"#设置用户名,邮箱
gitconfig --global user.emailg.xiangyu1990@gmail.com#设置用户名,邮箱
gitconfig --global alias.cicommit#设置git命令的别名
gitconfig --global alias.cocheckout#设置git命令的别名
git仓库(repository):
#创建一个本地的git仓库并命名:
git initdemo
#克隆一个远程的git仓库到指定路径:
gitclonehttps://github.com/a396901990/android.git/path/workpsace
git分支(branch):
gitbranch#查看分支
gitremote show origin #查看所有分支
gitbranch
#创建新分支
gitcheckout
#切换到分支
gitcheckout -b
#创建并切换到新分支
gitbranch -d
#删除分支(-D强删)
gitbranch -m
#本地分支重命名
git添加(add):
git add
#将本地指定文件名或目录(新增和修改,没有删除)的文件添加到暂存区
git add. #将本地所有的(新增和修改,没有删除)文件添加到暂存区
git add-u #将本地的(修改和删除,没有新增)文件添加到暂存区
git add-A #将本地所有改动添加到暂存区(git add-A = git add . + git add -u)
git add-i #打开一个交互式界面按需求添加文件
git删除/重命名(rm/mv):
git rm
#删除文件
git rm-r
#删除文件夹
git rm--cached
#从版本库中删除文件,但不删除文件
git mv
#文件重命名
git提交(commit):
gitcommit -m"comment"#提交暂存区中的内容(已经add)并添加注释
gitcommit -a#把修改的文件添加到暂存区(不包括新建(untracked)的文件),然后提交。
gitcommit--amend#修改提交的commit(没有push)
gitcommit --amend -m "comment" #修改commit注解
git差异(diff):
gitdiff#查看工作目录(workingtree)暂存区(index)的差别
git diff--cached #查看暂存起来的文件(stage)与并未提交(commit)的差别
git diff--staged #同上
git diffHEAD#查看最后一次提交之后的的差别(HEAD代表最近一次commit的信息)
git diff--stat#查看显示简略结果(文件列表)
git diffcommit1 commit2 #对比两次提交的内容(也可以是branch,哈希值)
git查看历史(log):
git log
git log-3 #查看前3次修改
git log--oneline #一行显示一条log
git log-p #查看详细修改内容
git log--stat #查看提交统计信息
git log--graph