• 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 log -p 用来显示每次提交的内容差异,加上 -2 来仅显示最近两次提交 git log -p -2
    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 checkout -- text.txt

     文件的删除, 文件名字的修改

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

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

     关于分支。

    查看现在在哪个分支  git branch
    创建分支 git branch  name
    切换到某分支 git checkout name
    创建并切换到某分支  git checkout -b name  ==   git branch name  git checkout name
    在name分支修改提交后 切回 master后 的工作目录跟切换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 目录有无变化

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

  • 相关阅读:
    Fiddler_AutoReponse_钓鱼网站原理和如何形成的&如何mock未开发好的页面来进行测试?
    HTTP 协议详解
    Appium元素定位-Toast
    Appium常用APi03
    Appium常用API 02
    Appium常用API_实现页面跳转(包括APP内部页面和APP 相互跳转)
    appium操作之手势操作-多点触摸(地图放大缩小)
    app自动化之手势(九宫格)滑动解锁
    常用 cmd 命令
    『转载』webGIS 概述
  • 原文地址:https://www.cnblogs.com/jkklearn/p/7261645.html
Copyright © 2020-2023  润新知