Git---版本控制器(远程仓库操作)

(划重点啊盆友们。讲道理我觉得之前在学git的时候,弄那个分支的概念,简直了。)
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。

操作远程仓库

查看远程仓库

如果想查看已经配置的远程仓库服务器,可以用git remote命令。如果你已经克隆了自己的仓库,至少能看到origin,这个是Git给的仓库服务器的默认名字。

$ git remote   //查看远程仓库服务器
origin

或者用-v,看仓库的简写和对应的url

$ git remote -v 
origin http://xxxxxxxxxx.xx

添加远程仓库

运行git remote add <名字> < 地址>添加一个新的远程Git仓库。
这时候你可以用自己命名的项目名字来代替整个URL。比如:
git fetch namea(拉取namea仓库中有But本地仓库没有的信息)

 $ git fetch [remote-name] 

这个命令会访问远程仓库,从中拉取所有你还没有的数据。执行完成之后你会拥有远程仓库中所有分支的引用。

推送到远程仓库
git push [remote-name][branch-name]
//比如 git push origin master
查看远程仓库信息
$ git remote show origin
 remote origin
  Fetch URL: https://github.com/schacon/ticgit
  Push  URL: https://github.com/schacon/ticgit
  HEAD branch: master
  Remote branches:
    master                               tracked
    dev-branch                           tracked
  Local branch configured for 'git pull':
master merges with remote master
  Local ref configured for 'git push':
master pushes to master (up to date)
远程仓库重命名
$ git remote rename 现有的名字 将要命名的名字
移除远程仓库
# git remote rm 仓库简写名

打标签功能

Git可以给历史中某一个提交打伤标签表示这个提交很重要。比如发布一个功能,就需要打标签。

列出已有的标签
$ git tag
publish/0.0.1
v1.0
//(按字母顺序排列)
创建标签

Git使用两种主要类型的标签:轻量标签和附注标签
附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。

创建附注标签

$ git tag -a v1.4 -m 'hello a '
//-m指定了将会存储在标签中的信息,就是注释啦。。

通过git show命令可以看到标签信息和对应的提交信息

$ git show v1.4
.......//显示打标签者的信息、打标签的日期时间、附注信息,然后显示具体的提交信息。

创建轻量标签

$ git tag v1.5   //只需要提供标签名字 

轻量标签本质上是将提交校验和存储到一个文件中 - 没有保存任何其他信息。 创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字
这时候在轻量标签上运行git show,不会看到额外的标签信息,只会显示出提交信息。

后期打标签

$ git tag -a v1.2 9fceb02

共享标签
创建完标签后必须显式地推送标签到共享服务器上。

$ git push origin [tagname]

一次性把所有不在远程仓库服务器上的标签全部推送

$ git push origin --tags
创建别名
$ git config --global alias.co checkout
//git config --global alias.[简写] [完整命令]

分支操作

首先明确,Git保存的是不同时刻的文件快照。

创建新分支

创建新分支的本质就是新建了一个可以移动的指针。

$ git branch 分支名
//会在当前所在的提交对象上创建一个指针

查看各个分支当前所指的对象

$ git log --oneline --decorate

分支切换

$ git checkout 已存在分支

把分支从master切到testing

在testing分支上提交内容

切回master分支再提交

在切换分支的时候,Git会重置工作目录,回到了你在这个分支上最后一次提交的样子。


合并分支

$ git checkout master
$ git merge hotfix

当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候,只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”

合并分支后


和之前将分支指针向前推进所不同的是,Git 将此次三方合并的结果做了一个新的快照并且自动创建一个新的提交指向它。 这个被称作一次合并提交,它的特别之处在于他有不止一个父提交。

分支合并遇到冲突

<<<<<<< HEAD:index.html
    console.log(aaa)
=======
    console.log(bbb)
>>>>>>> iss53:index.html

Head所指的是目前指针指的版本,也就是你的 master 分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支。iss53分支所指的版本在下半部分。需要手动解决冲突。


删除分支

$ git branch -d 需删除的分支名

分支管理
git branch不只可以创建和删除分支,不加任何参数则得到所有分支的一个列表。

$ git branch
iss53
*master
testing

*字符标识现在检出的分支,即HEAD指针指向的分支。

查看每一个分支最后一次的提交:

$ git branch -v
iss53   93b412c fix javascript issue
*master  7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author

查看哪些分支已经合并到当前分支

$ git branch --merged
iss53
*master

因为之前已经合并了 iss53 分支,所以现在看到它在列表中。 在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d 删除掉;你已经将它们的工作整合到了另一个分支,所以并不会失去任何东西。

查看所有包含未合并工作的分支

$ git branch --no-merged

未合并的分支删除会失败

添加某个服务器为当前项目的远程分支之一

$ git remote add [分支名] [地址]

推送本地分支到远程仓库

$ git push origin [分支名]
//Git 自动把 serverfix 分支名扩展为 refs/heads/serverfix:refs/heads/serverfix,意为“取出我在本地的 serverfix 分支,推送到远程仓库的 serverfix 分支中去”。

从远程仓库拉了别人创的新分支,想继续开发,可以用下面命令

$ git checkout -b test origin/test
//test为分支名
$ git checkout --track origin /test

删除远程分支

$ git push origin :[分支名]

分支衍合
merge的合并是合并出一个新的提交。rebase的衍合是把提交直接移动到下个指针
merge如下图

rebase如下图

衍合可以用来清提交记录数据,but官方文档说,一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。
然后说如果这么干,人民群众会仇恨你,你的朋友和家人也会嘲笑你,唾弃你。。。。。

好了差不多总结好了。后面服务器的知识不弄了,看文档~
https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%8D%8F%E8%AE%AE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值