Git 基础使用

初始化git

1
2
3
4
5
// 将尚未进行版本控制的本地目录转换为 Git 仓库;
git init
从其它服务器 **克隆** 一个已存在的 Git 仓库。
//执行克隆命令
git clone https://github.com/libgit2/libgit2 diyLibaryName

暂存修改文件

要暂存这次更新,需要运行 git add 命令。 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。
如果使用add命令后,你又改了某个文件的内容,那么这个文件将会同时出现在暂存区非暂存区

查看git 状态

如果你使用 git status -s 命令或 git status --short 命令,你将得到一种格式更为紧凑的输出

1
2
3
4
5
6
$ git status -s 
M README // 修改未暂存
MM Rakefile // 修改进暂存
A lib/git.rb //新增的
M lib/simplegit.rb // 暂存又修改了
?? LICENSE.txt //未暂存

忽略暂存文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。 来看一个实际的 .gitignore 例子:

1
$ cat .gitignore *.[oa] //忽略o 和 a 结尾的文件 *~ //忽略以波浪结尾的文件

文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/za/b/za/b/c/z 等。

flow流协作

1
2
3
4
5
6
7
8
9
10
// 这里可以使用变基代替pull
git pull / git fetch && git rebase

//切换一个工作分支
git branch feature-1103
//工作完之后想办法合并到主分支上面
git switch master
//使用这个命令的前提还是要前面无人提交否则 还需要在feature分支里面进行rebase
git merge branch feature-1103


Git 基础使用
https://chenhongjun.top/2022/09/07/Git 基础使用/
作者
Delightening
发布于
2022年9月7日
许可协议