.gitignore 与分支

.gitignore

  1. 文件忽略: .gitignore
    1
    2
    3
    4
    5
    *.a       # 忽略所有 .a 结尾的文件
    !lib.a # 但 lib.a 除外
    /TODO # 仅仅忽略项目根目录下的 TODO 文件,但不包括 subdir/TODO
    build/ # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt ,但不包括 doc/server/arch.txt

通过网站生成常用的 .gitignore 文件

一些重要的命令

  1. 删除目录
    1
    2
    rmdir mydir # 不常用,要求目录是空目录
    rm -rf mydir
  2. 拼接两条命令
    1
    mkdir mydir && cd mydir # 创建目录并进入该目录

Git 分支

  1. 分支的一些概念
  • 一个 commit 对象链:一条工作记录线(只有一个分支)
  • HEAD 指向的是当前分支
  • master(分支名)指向当前分支的最后一次提交
  • 分支的合并形式:快进-fast forward
  • master 分支没有做修改,另一分支做修改,合并形式就是快进
  1. 查看当前版本库的所有分支
    1
    git branch
  2. 创建新的分支
    1
    git branch new_branch(此时新分支和当前分支同步)
  3. 切换分支
    1
    2
    git checkout new_branch # 两分支文件是独立的
    git checkout - # 切换到之前的分支
  4. 删除分支
    1
    git branch -d new_branch 
  5. 注意事项:
  • 不能删除当前所在分支
  • 如果分支没有完全合并,要强行删除分支需要采用以下命令(要被删除的分支上做出了文件修改)
    1
    git branch -D new_branch 
  1. 创建分支并同时切换到新的分支上
    1
    git checkout -b new_branch
  2. 分支的合并
    1
    git merge new_branch # 将 new_branch 的内容修改合并到 master 分支上
  3. 显示当前所处分支最新的提交信息
    1
    git branch -v
  4. 合并产生冲突(解决冲突)
  • 原因:两个分支修改了同时修改同一个文件同一行(产生冲突)
  • 无法自动解决冲突,手动利用工具解决
  • 手动解决冲突后利用以下两个命令进行合并的提交
  • 手动解决合并冲突后,当前分支如果和另一分支合并,则这次合并是 fast-forward
    1
    2
    git add file # 告诉 git 手动解决了冲突
    git commit -m '' # 提交这次合并的 commit message