在git使用时,有时需要在公司内部搭建自己的git服务器,用于内部的版本控制。

从远程服务器到本地

先创建服务器端的空git库,将其clone到本地,再将本地的修改push到服务器端

# step1:
git init --bare sample.git # 在服务器上创建空的git版本库
chgrp 用户名 文件名 -R # ubuntu系统上有时,用户与组需要更改
chown 用户名 文件名 -R
# setp2:
git clone git@10.10.10.10:/home/git/sample.git # clone 空的git库到本地
# step3:
# 由于远程库是空的,我们第一次推送master分支时,加上了-u(--set-upstream)参数,git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
git push -u origin master

从本地到远程服务器

# setp1: 本地初始化一个git仓库
git init
# step2: 将远程与本地建立连接
git remote add origin git@10.10.10.10:/home/git/sample.git
# step3: 假设本地分支为dev,远程无此分支,现需要在远程新建此分支
git push --set-upstream origin dev

远程分支与本地分支 常用关系

场景1:已有本地分支,需要创建对应的远程分支

# dev为本地分支,但远程没有。指令可以自动在远程创建一个dev分支,并被本地dev分支track
git push --set-upstream origin dev

场景2:已有远程分支,需要创建对应的本地分支

# dev为远程分支,但本地没有。指令可以自动在本地创建一个dev分支,并track远程dev分支
git checkout --track origin/dev

场景3:已有本地分支和远程分支,让它们建立track

# dev_local 与 dev_remote分支 自动实现track
git branch --set-upstream-to=origin/dev_remote dev_local

常用指令

log相关

git log # 显示提交日志
git log --pretty=oneline #输出日志按行显示

远程分支相关

为一个项目添加多个远程仓库

git remote add github https://github.com/xxx/sample.git

查看远程仓库信息

# 查看名为 origin 的远程仓库
git remote show origin
git remote -v # 列出remote的一些信息

删除远程仓库

# 删除名为 origin 的远程仓库
git remote rm origin

为名为 origin 的远程仓库,添加两个url,从而一次push,可以推送到多个远程仓库。 修改.git/config文件中内容

[remote "origin"]
url = https://gitee.com/xxx/sample.git
url = https://github.com/xxx/sample.git
fetch = +refs/heads/*:refs/remotes/origin/*

分支相关

git branch -vva           # 查看远程与本地分支

git branch new_branch    # 新建一个分支,必转到新分支
git checkout new_branch git checkout -b new_branch # 与楼上功能相同

push相关

查看分支的 upstream 命令

git config --get branch.<分支名>.remote

设置分支的 upstream

# push时加上-u 或 --set-upstream
git push -u origin master
# 显示设置
git branch -u orgin/master
git branch --set-upstream-to=origin/master mster

删除分支的 upstream

git branch --unset-upstream

git pull 相关

若是有报错:

refusing to merge unrelated histories

执行

git pull origin master --allow-unrelated-histories

实现pull

git pull
# 等同于下面两条指令
git fetch
git merge FETCH_HEAD git pull origin master:brantest # 将origin的master分支拉取过来,与本地的brantest分支合并
git pull origin master # 将远程分支与当前分支合并

最新文章

  1. ASP.NET State Server 服务 sessionState
  2. onSaveInstanceState的执行时机
  3. JavaScript(六)——实现图片上下或者左右无缝滚动
  4. 唯一分解定理 poj 1365
  5. 微信jssdk,实现多图上传的一点心得
  6. 三 JSP 技术
  7. ThinkPHP3.2.3新特性之:数据库设置
  8. 全排列算法之Perm算法实现
  9. 【转】Android:ListView常见错位之CheckBox错位
  10. java实现的23种设计模式 (个人推荐)
  11. bzoj1753 [Usaco2005 qua]Who&#39;s in the Middle
  12. Eclipse选项卡式的属性视图(The Eclipse Tabbed Properties View)
  13. ubuntu install mysql server method
  14. NYoj1058
  15. 201521123111《Java程序设计》第5周学习总结
  16. Ubuntu远程登陆、SSH图形界面、WOL远程唤醒
  17. centos7 ipaddr 无法查看虚拟机IP解决办法
  18. 高性能IO之Reactor模式
  19. 一个讲课截屏 清明DAY2
  20. js 时间加减

热门文章

  1. 一次客户需求引发的K8S网络探究
  2. 用GitHub Actions自动部署Hexo
  3. 【python】pandas 索引操作
  4. CEOI 2019 Day2 T2 魔法树 Magic Tree (LOJ#3166、CF1993B、and JOI2021 3.20 T3) (启发式合并平衡树,线段树合并)
  5. 【lwip】06-网络接口层分析
  6. 项目实践2:(问卷)用html和css做一个网页
  7. Python入门系列(十)一篇学会python文件处理
  8. Netty整合STOMP
  9. filebeat直接给es传输日志,自定义索引名
  10. Elasticsearch删除操作详解