zoukankan      html  css  js  c++  java
  • Git的简单使用

    GIT的一些总结

    git初始

    • 添加一个远程的repository(这个托管网络的rep创建就不在这里一一赘述了)
      git remote add git@github.com:用户名/远程的rep名.git

    从远程仓库clone一个本地库

    git clone git@github.com:用户名/远程rep名.git就会从远程库clone一个工程到本地目录下。

    分支变动管理

    • git diff HEAD -- 文件名可以查看工作区里面的文件与版本库中有什么区别
    • git log查看一下我们所有的更改信息。
    • git reset --hard 在log中找到的你想回退的变动回退到固定版本
    • git reflog其中记录了你git所有的操作,这样子你就可以找到所有版本,你就可以通过上一条命令跳到所有你trak过的变动。
    • git checkout -- 文件名这个是让你工作区里面的文件与库文件保持一致,变相舍弃了本地你所有的更改。
    • git reset HEAD 文件名撤销当前暂存区的修改,工作区修改不变。

    提交变动文件到远程库

    git push -u origin master将master(本地)提交到origin(远程)上去。

    远程库的管理

    • git remote -v查看远程库的信息
    • 在多人协作开发的时候git push之前一定要git pull拿到别人的变动,如有冲突解决。再提交。
    • git checkout -b 分支名 origin(远程主分支名,对应的是你本地master分支)/分支名本地创建和远端一样的分支
    • 建立本地远程之间的分支关联git branch --set-upstream branch-name origin/branch-name;

    分支的管理

    • 分支的管理git branch查看当前的分支状态; git checkout -b 分支名创建一个分支;git checkout 分支名转换分支;
    • git pull本地与远程文件统一(远程 --> 本地)如果你本地落后远程,必须用pull。如果你本地超前远程,必须用push。
    • 分支提交冲突git status查看冲突的状态,手动解决冲突。再次提交变动。
    • 带参数的git-log
      git log --graph --pretty=oneline --abbrev-commit
    • 快速合并分支
      git merge 分支名将该分支合并到当前的分支上去。
    • 禁用快速合并
      git merge --no-ff -m"你的自定义注释" 分支名这个好处就是可以自定义一个分支合并的注释出来,方便后期的维护更新。
    • Bug分支的使用
      git stash保持当前工作场景。主要针对那些未提交的更改。
      git stash list可以查看当时的工作现场
      git stash apply恢复工作现场,stash内容并不删除,如果想删除需要git stash drop来删除
      git stash pop恢复工作现场后,把stash内容也删除了。
      git checkout -- 文件名撤销修改。

    版本管理

    • 因为commit id是一串字符串不是很友好,我们就引入了tag版本作为关联,git tag v1.0 commitID给当前命名为commitID的分支添加一个版本号
    • git tag -a <tagname> -m "注释信息"指定标签信息。

    添加忽略文件的教程

    • 创建一个.gitignore文件,将你想忽略的文件格式放入这个文件中。这里有个实例文件参考:
    建议从github官网搜索.gitignore根据语言的不同去下载不同的忽略文件。
    
    • 首先要利用git rm --cached filename先将已经track在git中的文件从索引端移除掉。
    • 然后再将.gitignore文件提交git。
    • 打完收工。

    配置别名

    • 常常因为git中的一些命令行太长不好记而烦恼,git config --global alias.别名 你要替换的命令

    • 一个比较好玩的配置:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

    • --global针对当前用户,不加只对当前仓库起作用。

    • 这些别动都在.git/config文件中可以找到。如果要删除别名,直接删除文件中对应行就可以了。

    搭建Git服务器

    可以参考大神的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

    • 生成SSH加解密文件
     设置Git的user name和email:
    $ git config --global user.name "名字"
    $ git config --global user.email "邮箱名字"
    1.查看是否已经有了ssh密钥:cd ~/.ssh
    如果没有密钥则不会有此文件夹,有则备份删除
    2.生存密钥:
    $ ssh-keygen -t rsa -C “邮箱名字”
    按3个回车,密码为空。
    3.配置git SSH访问
    $ ssh git@192.168.x.x 登陆远程服务器
    $ ssh mkdir .ssh 创建.ssh文件夹
    $ touch authorized_keys 创建公钥匙列表文件
    然后将本地生成的id_rsa.pub文件里面的内容拷入authorized_keys文件中,一行一个Key
    $ git clone git@192.168.x.x:/home/git 具体地址自己按要求填写
    打完收工..
    
    
    • 服务端配置git仓库
    git init --bare xxx.git   //创建空git仓库
    chmod -R 777 xxx.git //更改文件夹权限
    

    错误信息汇总(持续更新)

    • Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.

    解决方法:

      1.首先``git remote -v``查看一下我们的远程库地址是否出错。
      2.``git remote set-url origin 你的远程库地址``origin是我在远程库中起的名字
      3.![](http://images2015.cnblogs.com/blog/787409/201609/787409-20160922170609934-1798412909.tiff)替换后成功。
  • 相关阅读:
    导入测试用例的设计
    质量管理的精髓
    ios crash的原因与抓取crash日志的方法
    怎样实现excel隔行隔列变色效果的方法
    如何提高员工的质量意识?
    史上最全的测试团队组建方法
    如何写好缺陷报告?
    你还不知道?这四个因素决定了你的养老金待遇!
    各手机截屏方法收集
    利用drozer进行Android渗透测试
  • 原文地址:https://www.cnblogs.com/fuunnyy/p/5896756.html
Copyright © 2011-2022 走看看