zoukankan      html  css  js  c++  java
  • git && gitlab 使用

     安装略过

    使用

    基于公钥的认证登录,方便对用户进行权限控制

    useradd -s /usr/bin/git-shell testgit  #创建一个用户  或者直接useradd testgit   然后去/etc/passwd 修改testgit用户的bash 为/usr/bin/git-shell
    passwd testgit                            #更改密码
    cd /home/testgit/                        #进入家目录,
    git init --bare testgit.git             #初始化一个仓库
    
    chown -R testgit:testgit /home/testgit        #更改目录权限
    mkdir .ssh && cd .ssh/ && touch authorized_keys
    
    将用户的公钥写进去就ok了,访问路径为 ssh://testgit@ip:/home/testgit/testgit.git
    

    git clone备份后为 .git的目录文件,此文为将此类文件恢复至 gitlab

    1#从原地址克隆一份裸版本库,比如原本托管于 GitHub。
    git clone –bare git://github.com/username/project.git
    
    #然后到新的 Git 服务器上创建一个新项目,比如 GitCafe。
    #以镜像推送的方式上传代码到 GitCafe 服务器上。
    cd project.git
    git push --mirror git@gitcafe.com/username/newproject.git
    #删除本地代码
    cd ..
    rm -rf project.git

    实例(此方法会保留原有源码库的所有分支)

     

     到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。

    git clone git@gitcafe.com/username/newproject.git
    
    这种方式可以保留原版本库中的所有内容。
    提交前要删除本地remotes中的分支引用,这样就不会将remotes里面的远程分支也推到服务器上去: 
    
    另外还可以直接修改当前仓库的远程地址,然后push一下就能将历史都提交上去: git remote set-url origin remote_git_address

    初次建立项目,代码上传与下载

    http方式:
    Git global setup            ###(gitlab客户端上执行(linux/windows(gitbash)))
    git config --global user.name "gaoxinjie"
    git config --global user.email "gaoxinjie@lavion.com.cn"
    
    
    Create a new repository            ###创建一个新仓库    
    git clone http://gaoxinjie@iZ2zei7b23po43up3908hrZ/my_object/work.git
    cd work
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
    
    
    Existing folder            ###在一个存在的文件夹下上传代码
    cd existing_folder
    git init
    git remote add origin http://gaoxinjie@iZ2zei7b23po43up3908hrZ/my_object/work.git
    git add .
    git commit
    git push -u origin master
    
    
    Existing Git repository            ###在一个存在的git仓库下上传代码
    cd existing_repo
    git remote add origin http://gaoxinjie@iZ2zei7b23po43up3908hrZ/my_object/work.git
    git push -u origin --all
    git push -u origin --tags
    
    ssh方式:
    
    Command line instructions
    Git global setup
    
    git config --global user.name "gaoxinjie"
    git config --global user.email "gaoxinjie@lavion.com.cn"
    
    
    Create a new repository
    git clone git@iZ2zei7b23po43up3908hrZ:my_object/work.git
    cd work
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
    
    
    Existing folder
    cd existing_folder
    git init
    git remote add origin git@iZ2zei7b23po43up3908hrZ:my_object/work.git
    git add .
    git commit
    git push -u origin master
    
    
    Existing Git repository
    cd existing_repo
    git remote add origin git@iZ2zei7b23po43up3908hrZ:my_object/work.git
    git push -u origin --all
    git push -u origin --tags

    gitlab

    添加sshkey

    ssh-keygen -t rsa
    将id_rsa.pub 上传到sshkyes 即可

    使用

    创建分支: $ git branch mybranch
    切换分支: $ git checkout mybranch
    创建并切换分支: $ git checkout -b mybranch
    列出所有分支: $ git branch
    
    更新master主线上的东西到该分支上:$git rebase master
    
    切换到master分支:$git checkout master
    更新mybranch分支上的东西到master上:$git rebase mybranch

    修改并提交

    文件做了修改以后要先 git add 文件名 
    然后 提交: git commit -a -m "add **.txt"
    然后 push到远程服务器:  git push origin develop(分支名)
    
    
    对最近一次commit的进行修改:git commit -a –amend
    
    commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:git reset HEAD^

    合并分支

    下面两条命令的意思是切换到master分支,并将mybranch的分支的内容合并到master分支
    
    $ git checkout master
    $ git merge mybranch (merge from mybranch) 
    
    例: develop分支添加了内容,并且合并到master分支

    删除分支: $ git branch -d mybranch
    强制删除分支: $ git branch -D mybranch
    列出所有分支: $ git branch
    查看各个分支最后一次提交: $ git branch -v
    
    
    查看哪些分支合并入当前分支: $ git branch –merged
    查看哪些分支未合并入当前分支: $ git branch –no-merged
    
    更新远程库到本地: $ git fetch origin
    推送分支: $ git push origin mybranch
    取远程分支合并到本地: $ git merge origin/mybranch
    git log -p master..origin/master    ####比较本地的master分支和origin/master分支的差别
    取远程分支并分化一个新分支: $ git checkout -b mybranch origin/mybranch
    删除远程分支:$ git push origin :mybranch

    git pull && git fetch

    git pull

    命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。 $ git pull
    <远程主机名> <远程分支名>:<本地分支名> 比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。 $ git pull origin next:master $ git pull origin next 上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。 $ git fetch origin $ git merge origin/next git fetch

    一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。 $ git fetch
    <远程主机名> 上面命令将某个远程主机的更新,全部取回本地。 默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。 $ git fetch <远程主机名> <分支名> 比如,取回origin主机的master分支。 $ git fetch origin master 所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取。比如origin主机的master,就要用origin/master读取。 git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。 $ git branch -r

     git rebase

    rebase(参考链接: http://www.cnblogs.com/kym/archive/2010/08/12/1797937.html)
    $ git checkout mybranch
    $ git rebase master (rebase from master)
    
    
    举例: 
    $ git checkout server
    $ git rebase –onto master server client
    $ git checkout master
    $ git merge client (fostforward)
    $ git rebase master server (checkout sever)
    $ git merge server
    $ git branch -d client
    $ git branch -d server

    回滚

    备份

    使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份:
    
    gitlab-rake gitlab:backup:create
    使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.
    
    Gitlab 修改备份文件默认目录
    
    你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:
    
    gitlab_rails['backup_path'] = '/mnt/backups'
    /mnt/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可.
    
    
    同样, Gitlab的从备份恢复也非常简单:
    
    将备份文件拷贝到新服务器 /var/opt/gitlab/backups目录下
    
    # 停止相关数据连接服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    
    # 从1393513186编号备份中恢复
    gitlab-rake gitlab:backup:restore BACKUP=1393513186
    
    # 启动Gitlab
    sudo gitlab-ctl start
    
    Gitlab迁移
    
    迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 
    但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份. 关闭注册功能: Admin(左侧菜单栏)
    -->settings --> Sign-in Restrictions Sign-upenbaled 关闭注册功能 Sign-inenbaled 关闭注册登录功能

    创建仓库简单示例

    useradd -s /usr/bin/git-shell testgit   #创建一个用户  或者直接useradd testgit   然后去/etc/passwd 修改testgit用户的bash 为/usr/bin/git-shell
    passwd testgit                            #更改密码
    cd /home/testgit/                        #进入家目录,
    git init --bare cloudapp.git             #初始化一个仓库
    
    chown -R testgit:testgit /home/testgit        #更改目录权限
    mkdir .ssh && cd .ssh/ && authorized_keys
    
    将用户的公钥写进去就ok了
  • 相关阅读:
    卡诺图简单逻辑化简与五变量卡诺图化简
    flash读写学习笔记与spi接口及简单测试验证(三)
    疯狂的订餐系统软件需求分析挑战之旅4
    .NET(C#):谈谈各种结束进程的方法
    疯狂的订餐系统软件需求分析挑战之旅3
    疯狂的订餐系统软件需求分析挑战之旅5
    找零
    ASP.NET MVC3 Razor视图引擎基础语法
    做了8年软件开发了,年龄大了,想要转行做测试,大家给点意见
    想搞一个 代码仓库的东西,不知道大家有没有兴趣啊
  • 原文地址:https://www.cnblogs.com/FRESHMANS/p/8806823.html
Copyright © 2011-2022 走看看