首页 > Note > git 使用笔记 (不定期更新中)

git 使用笔记 (不定期更新中)

2017年6月24日 发表评论 阅读评论

子模块 (Submodule)

添加

git submodule add [remotegiturl] [localdir]

更新

git submodule update --init --recursive

clone 时更新子模块

git clone [remotegiturl] --resuresive

远程更新(更新到最新)

submodule 不会detach到源的任何一个分支,而只是源的某一个commit,
使用 git submodule update --remote
将本地的子模块更新到最新。如果需要将远程仓库的子模块了更新到最新,可以先更新本地,再push到远程仓库:

删除

git 没有提供删除子模块的命令

分支(branch)

git 仓库在创建的时候默认会创建一个 master 分支

创建分支

git branch [branch_name]
会创建一个新的分支。此时仍然工作在原分支上,而不会自动切换到新创建的分支上。git 对分支的名称有一些限制:

  • 可以包含斜杠(/),但不能以斜杠(/) 开头或结尾
  • 不能以点号(.), 减号(-) 开头, 点号也不能紧跟在斜杠后面,并且不能出现连接的两个点号。如 feature/.new ,feature..new 都是非法的
  • 不能包含任何空白字符(如空格,tab)
  • 不能包含在 git 中具有特殊意义的字符。包括 ~, ^ , : , ? , * , [
  • 不能包含任何 ASCII控制字符,即值小于八进制 \040 的字符或 DEL(八进制\177)

查看分支

  • git branch 当后面不跟任何参数时,显示本地所有的分支,并对当前分支做特殊标识。
  • git branch -r 会查看远程分支
  • git branch -a 会将本地分支和远程分支都列出来
  • git show-branch 另一个命令可以查看更详细的内容:输出分为两个部分,使用减号分隔。

    减号的个数是同分支的个数决定的,有多少个分支就有多少个 '-' 。
    上半部分显示所的有分支。当前分支使用 '*',其他分支分别使用不同颜色的 '!' 标识。颜色没有特殊的意义,只是用来区分不同的分支而已;
    下半部分显示 commit 列表。每个列表使用 '*' 和不同颜色的 '+' 表示。这里的颜色和上半部分 '!' 相对应,表示该分支上有此 commit

切换分支

  • git checkout [branch_name] 切换到指定的分支。可以将创建分支与切换分支合并为一个命令:
  • git checkout -b [branch_name] 命令会创建一个新分支并自动切换到新创建的分支上。

删除分支

git branch -d [branch_name]
可以删除指定的分支。注意如果删除的是当前工作分支则会失败,需要先切换出其他分支才能删除当前分支。master分支也是可以删除的,只是不建议这么做。

合并分支

先切换到目标分支,使用
git merge [branch_name]
可以将分支合并到当前分支

冲突

如下情形表示 git pull 出现冲突了:

一般的解决方法是先将本地修改 stash (隐藏) 起来,待 pull 成功后再取出修改,手动编辑解决冲突;

git 会将冲突使用特殊符号标出,像这样:

其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。git 没有智能到可以识别哪些是你想要的,需要自己决定删除哪些保留哪些内容。
修改之后及时提交,并 pull。

 

其它

Windows 下修改文件名大小写

如将 bg.JPG 修改为 bg.jpg,此修改在 windows 下是无法被检测到的,因为 Windows 操作系统是大小写不敏感的。此时需要使用 mv 命令:
git mv -f bg.JPG bg.jpg

本地仓库向添加远程地址并提交

仓库更改远程地址

 

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.