zoukankan      html  css  js  c++  java
  • git的基本操作

    1 git和svn

    git是分布式版本控制工具,svn则是集中式的,版本都是放在集中服务器上,开发人员需要自己从中央服务器下载最新版本。

    提到集中式和分布式,最容易想到的就是单点故障问题,如果集中服务器出现了故障,那么就不可用了,但是分布式就不会存在这种问题。

    2 工作流程

    1. 将代码从远程仓库克隆到本地仓库
    2. 将本地仓库的代码checkout到工作区
    3. 如果想到提交代码,把工作区的代码提交到暂存区,然后提交到本地仓库
    4. 如果想和成员共享代码,将代码push到远程仓库

    3 常用命令

    3.1 本地仓库

    1. 修改设置用户名和邮箱,这个设置是保存在本地的git配置文件中

    2. 获取git仓库

      1. 克隆远程仓库
      2. 在文件夹执行git init命令,出现git隐藏文件夹代表创建成功
    3. 相关概念

      1. 版本库:git隐藏文件夹,里面存放了配置、日志、文件版本等信息
      2. 工作目录:包含git隐藏文件夹的目录为工作目录
      3. 暂存区:git中的index文件,也称为stage,临时保存修改文件的地方
    4. 工作目录文件的状态:untracked未被纳入版本控制,unmodified未修改,staged已暂存 git status查看

    5. git add将untracked的加入stage,git reset取消暂存,git commit将暂存的内容提交到本地仓库,git rm删除文件:删除的只是工作区的文件,需要提交到本地仓库

    6. 忽略列表 在工作目录中创建gitignore隐藏文件夹,列出要忽略的文件模式

      # no .a files
      *.a
      # but do track lib.a, even though you're ignoring .a files above
      !lib.a
      # only ignore the TODO file in the current directory, not subdir/TODO
      /TODO
      # ignore all files in the build/ directory
      build/
      # ignore doc/notes.txt, but not doc/server/arch.txt
      doc/*.txt
      # ignore all .pdf files in the doc/ directory
      doc/**/*.pd
      
    7. git log查看日志记录

    3.2 远程仓库

    1. 查看远程仓库 git remote
    2. 添加远程仓库 git remote add 引用简写 url
    3. 从远程仓库克隆git clone [url]
    4. 移除无效的远程仓库 git remote rm只是从本地移除远程仓库的记录,并不会真正影响到远程仓库
    5. 从远程仓库中抓取与拉取:git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge,合并git merge 仓库名/分支名;git pull 是从远程仓库获取最新版本并merge到本地仓库
    6. 推送到远程仓库git push [remote-name][branch-name]

    3.3 分支

    1. master并无特殊之处,只是默认创建叫这个名字
    2. 新建分支git branch 分支名
    3. 切换分支 git checkout 分支名
    4. 推送至远程仓库分支 git push origin 分支名
    5. 合并分支 git merge 分支名:打开冲突的文件并修复冲突内容,最后执行git add命令来
      标识冲突已解决
    6. 删除分支 git branch -d 分支名,强制删除-D 删除远程git push origin –d branchName

    3.4 标签

    1. 创建git tab 标签名
    2. 每一次提交都会产生唯一的hash值
    3. 检出标签 git checkout -b branch tag 一般检出标签的时候会创建一个新的分支指向它
    4. 删除git tab -d 标签名 ;删除远程仓库标签git push origin:refs/tags/标签名

    3 在idea使用git

    • .idea隐藏文件和.iml文件,target文件夹不应该交给git管理

    • Git报错-refusing to merge unrelated histories 加上--allow-unrelated-histories

    • 存在冲突,但是我想合并两个分支:先修改冲突文件,git add git commit提交合并

    • 解除版本控制,删除git文件夹和vcs配置文件

    【Git】如何在Idea中将自己的项目添加到Git上并且推送到远程仓库?

    SSH协议

    基于一对秘钥,公钥放在需要访问的服务器

  • 相关阅读:
    java调用restful webservice(转)
    精心挑选的12款优秀 jQuery Ajax 分页插件和教程
    android shape的使用
    android 获取资源文件 r.drawable中的图片转换为drawable、bitmap
    jquery+ajax分页
    ImageButton自定义按钮的按下效果的高效实现方法(非一般)
    ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
    sdk manager更新失败,显示Download interrupted: read timed out,应该如何解决?
    Android SDK 下载速度慢解决方法
    android 让图片充满整个屏幕
  • 原文地址:https://www.cnblogs.com/ningdeblog/p/git.html
Copyright © 2011-2022 走看看