本地库初始化前期

本地库初始化

在项目文件夹中使用git init 初始化git本地仓库

会生成一个.git文件夹, 里面有一些子目录和文件

设置签名

  1. 形式:

    1
    2
    3
    4
    5
    用户名: tom

    Email地址: good@test.com

    作用: 区分开发人员
  2. 辨析: 这里设置的签名和登陆远程中心的账号密码没有任何关系

  3. 命令:

    1. 项目(仓库) 级别: 仅在当前本地库使用, 即本项目使用

      1
      2
      git config user.name tom_pro
      git config user.email good_pro@test.com

      信息保存的位置是.git/config

    2. 系统用户级别: 登陆当前操作系统的用户范围

      1
      2
      git config --global user.name tom_glb
      git config --global user.email tom_glb@test.comOA

    保存位置 ~/.gitconfig

    1. 遵循就近原则: 项目级别 > 系统用户级别

      不允许都不存在的状态.

本地库的操作

初始化和提交

  1. 查看状态
    1
    git status 
  2. 将工作区的”新建和修改” 添加到暂存区
    1
    2
    3
    4
    5
    git add <file>  # 将没有track的文件假如到我们的git管理的东西, 即添加到暂存区
    git rm --cached # 移除到暂存区, 进行撤销

    git commit # 进行提交并写上注释
    git commit -m "" <file name>

更新版本(前进后退)

查看日志

1
2
3
4
5
git log # 显示日志, 完整的日志
git log --pretty=oneline # 在同一行显示, 有完整的hash值
git log --oneline # 显示hash值的一部分
git reflog # 显示移动的步数
# HEAD@{移动到当前版本的步数}

基于索引值进行前进后退[推荐使用]

1
2
git reflog # 先查看hash值
git reset --hard <hash Value>

使用^符号: 只能后退

1
2
3
4
git log --oneline # 只显示先前的历史记录
git reset --hard HEAD^ # "^" 的个数代表回退的机会
git reset --hard HEAD~3 # 表示回退3步
git reset --hard HEAD~n # "n" 代表我们要回退的步数

reset的三个参数对比

1
2
3
4
5
6
7
8
9
10
1. --soft  
仅在本地库移动指针
本地库向前, 相对的暂存区和工作区后移
2. --mixed
在本地库移动HEAD 指针
重置暂存区
3. --hard 使用最多OB
在本地库移动HEAD指针
重置暂存区
重置工作区

删除文件找回

前提: 删除前: 文件存在时的状态提交到了本地库

1
2
3
4
git reset --hard [指针位置]
# 删除操作已经提交到本地库, 指针指向历史记录位置
# 删除操作为提交至本地库, 指针使用HEAD
# 使用跳转就好了

进行比较, 文件差异

1
2
git diff [文件名] # 将工作区的文件和暂存区比较
git diff [本地库历史版本] # 将工作区的文件和本地库历史记录进行比较

分支操作

  1. 创建分支
    1
    git branch [分支名]
  2. 查看分支
    1
    git branch -v
  3. 切换分支
    1
    git checkout [分支名]
  4. 合并分支
    1. 切换到接收修改的分支上(被合并的, 增加新内容);
      1
      git checkout [分支名]
    2. 执行merge命令
      1
      git merge [分支名]
  5. 分支冲突
    1. 冲突表现: 文件中多出来一些东西, 指明是谁修改了

    2. 冲突解决

      2.1 编辑文件, 删除特殊符号

      2.2 把文件修改到满意的程度

      2.3 git add [文件名]

      2.4 git commit -m "日志信息"

      &nbsp;&nbsp;&nbsp;&nbsp;notice : 此时不能带任何文件名字

远程库与本地库之间的操作

克隆 git clone [Address]

  1. 完整的把远程库下载到本地
  2. 创建origin远程地址别名
    1
    git remote add orgin [地址]
  3. 初始化本地库
  4. 推送到远程库
    1
    git push [地址别名] [分支名]

pull = fetch + merge

1
2
git fetch [远程库地址别名] [远程分支名]
git merge [远程库别名/远程分支名

解决冲突:

  1. 如果不是基于Github远程库最新版做的修改, 不能推送, 必须先拉去操作.
  2. 拉取下来, 进入冲突, 解决冲突就好了.

ssh登陆

  1. 进入当前用户的home目录

    1
    $ cd ~
  2. 删除.sh目录

    1
    $ rm -rvf .ssh
  3. 运行命令生成.ssh密钥目录,

    1
    2
    $ ssh-keygen -t rsa -C [Your email used in login Github]
    notice : -C is capital format
  4. 进入.ssh 目录查看文件列表

    1
    2
    $ cd .ssh
    $ ls -LF
  5. 查看id_rsa.pub的文件内容

    1
    $ cat id_ras.pub
  6. 复制文件内容, 登陆GitHub, 点击头像->Settings->SSH and GPG keys-> NEW ssh key

  7. 输入复制的密钥信息

  8. 回到git bash 里面创建远程地址别名.

    1
    $ git remote add orgin_ssh [ssh 地址]
  9. 推送文件测

在eclipse中进行操作

  1. 在eclipse 中初始化本地库, 右键[Project]->team->share project

  2. 创建好之后, 我们可以需要写一个.gitignore文件,忽略我们版本库不需要的东西.

  3. 未完待续