zoukankan      html  css  js  c++  java
  • Git 命令及git服务器

    Linux 服务器上安装git

    yum -y install git 

    git config  --global user.name "name"

    git config  --global user.email "email"

    globa 参数表示这台机器上所有仓库都会使用这个配置,当然也可以对指定仓库使用指定的配置

    创建仓库的两种方法:

    普通 仓库       git init 
    裸库              git init  --bare

    两者的区别参见 https://segmentfault.com/q/1010000004683286/a-1020000004684114

    当创建普通库时,除了 .git目录之外,你还可以看到库中所有所包含的所有源文件,拥有了一个可以浏览,修改的本地库(add,commit.delete)

    一般来说,一个裸库往往被创建用于 作为大家一起工作的共享库,每个人都可以往里面 push 自己的本地修改,一个常用的方式是在库名后面加上 .git 

    复制代码
    复制代码
    git status  查看当前仓库的状态
    git diff 查看修改的内容
    git commit 提交
    git log 提交历史记录
    git reflog 历史命令
    git reset --hard HEAD^ 文件回退
    git reset --hard 23134(版本号前面几位)
    复制代码
    复制代码

    在进行版本回退额时候 执行 git reset  --hard  12312后,现在又后悔了,想要回到最新的状态  实行 git reflog 看到最新的一次提交的commit id 执行  get reset --hard lastid 即可回到最新状态

    git chekout -- text.txt  丢弃工作区的修改 ,这让个文件回到了最近一次 commit 或 add 时 的状态

     文件的删除

    git rm  filename    然后git commit 
     git push origin master
    如果手动删除文件 rm -rf 1.txt 后想恢复文件 git checkout -- 1.txt 从版本库中将文件恢复

    git  checkout 会用版本库里的版本替换工作区中的版本,无论工作去是修改还是删除,都可以一键还原。

     关于分支。

    复制代码
    复制代码
    查看现在在哪个分支  git branch
    创建分支 git branch  name
    切换到某分支 git checkout name
    创建并切换到某分支  git checkout -b name
    合并某分支到当前分支  git merge name
    删除分支 git branch -d name
    
    切换到a分支后,是看不见在b分支修改创建的文件,合并分支后是可以看见的
    复制代码
    复制代码
    复制代码
    复制代码
    将工作现场储藏   git stash
    查看工作现场 git stash list
    
    恢复现场的两种方法
    1 git stash apply 恢复后stash内容并不删除,需要通过git stash drop 来删除
    2 git stash pop 恢复的同时把 stash 内容也删了
    复制代码
    复制代码

    通过git remote 查看远程库的信息 git remote -v 显示更详细的信息

    多人分支合作分工

    复制代码
    复制代码
    使用 git push origin branch branchname 推送自己的修改
    如果推送失败,则因为远程分支比你的本地分支要新,使用git pull 合并
    如果合并有冲突,则解决冲突,并在本地提交
    没有冲突或者解决掉冲突后,再用 git push origin branch branchname推送就能成功
    如果 git pull 提示" no tracking information" 说明本地分支和远程分支没有链接关系
    使用  git branch --set-upstream branch-name origin/branch-name
    复制代码
    复制代码

    git config --list 查看git 的配置情况

    一个git 服务器的搭建

    参考链接 http://www.cnblogs.com/dee0912/p/5815267.html

     git init --bare gittest.git   创建一个裸仓库 (裸仓库没有工作区)

    在 hooks底下创建一个文件   post-receive

    内容为

    #!/bin/bash
    git --work-tree=/home/www checkout -f 

    chown git:git  post-reveive

    chmod a+x post-receive

    地址就是 git@ip:/home/dir/git.git

    客户端每次 git clone 和pull 都要  输入密码

    讲客户端的密钥 放在 服务器上进行认证

    服务器配置

    RSAAuthentication yes
    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

    重启sshd服务

    service sshd restart  

    在git 用户目录下 新建 .ssh 目录

    将客户端公钥文件写入authorized_keys

    chmod 600   authorized_keys

    chmod 700 .ssh

    在windows 的git gui  执行 git clone 看是否能克隆仓库

    修改文件 推动到主分支,看post_receive内的checkout 目录有无变化

    如果出现仍然输入密码之类的,检查密钥文件等的权限和所有者

  • 相关阅读:
    python--输出spwm的数组
    爬虫二:爬取糗事百科段子
    爬虫一:爬取信息
    Python中的切片操作
    JSON
    python 中的异常处理与种类
    register的功能
    static的功能
    网络安全的认识
    VMware5.5-vCenter Converter(转换)
  • 原文地址:https://www.cnblogs.com/wenhaoSir/p/11356124.html
Copyright © 2011-2022 走看看