Git基础
Git常用命令
Git工作流

常用命令
git status
可以查看各文件的状态和所处的分支
|
|
这样的信息过于繁琐,可以用git status -s显示简短信息
|
|
最左边的两个字母,左边表示暂存区状态,右边表示工作区状态。
M:Modified A:Added ?:Untracked
git diff
git diff 比较工作目录中当前文件和暂存区域快照之间的差异
git diff --staged/git diff --cached比较暂存区和git仓库提交的最后一个版本的差别
可以使用git difftool调用GUI工具比较差异
git add
添加文件到暂存区
git add . 表示添加目录下所有文件,但是会忽略掉.gitignore里标注的文件,.处可以用glob匹配规则
git rm
git rm xxx 用于删除了工作区文件后,删除暂存区文件,并不跟踪
git rm -f xxx 表示删除暂存区xxx文件、工作区文件会被一起删除
git rm --cached xxx 表示删除暂存区xxx文件,工作区不会被删除【适用于想保留文件,但不想让git跟踪】
git mv
git mv xxx yyy 把名为xxx的文件名改为yyy【工作区文件会被修改】
相当于以下三条命令
|
|
git commit
git commit 进入设置的编辑器编辑提交的内容
git commit -m "xxxxx" 快速设置提交的内容为xxxxx
合并commit信息
git commit --amend 可以修改上一次的提交信息,会将暂存区的文件进行提交
如果需要修改上一次commit里的文件,可以这样操作
|
|
git log
HEAD表示该分支上的最后一次提交的快照,后面的master表示所处的分支
这里的时间可以用2022-7-21也可以用2.weeks
git reset
取消暂存区的文件use "git reset HEAD ..." to unstage
git restore / git checkout –
撤销对文件的修改,恢复到最后一次提交的状态
远程仓库的使用
如工作流图所示,但是需要注意
-
clone会带着版本历史和记录一起下载,直接在GitHub上下载的zip包没有 -
pull命令会覆盖工作区文件,fetch不会【其对应的命令为git fetch/pull <remote>】 -
push命令为git push <remote> <branch>
查看远程仓库
git remote 列出每一个远程服务器的简写
git remote -v 会附带显示其url
添加远程仓库
git remote add <shortname> <url> 添加远程仓库
添加完远程仓库后,可以用shortname代表远程仓库
例如: 执行git remote add gitignore https://github.com/github/gitignore后,可以用gitignore/master访问其master分支
git clone 之后会默认设置远程仓库origin为克隆的地址
远程仓库的重命名与移除
git remote rename <old> <new> 重命名
git remote remove/rm <remote> 移除
Git别名
git config --global alias.<new> <old>
例如:执行了git config --global alias.ci 'commit'
之后git ci就等价于git commit
【git也可以代理非git命令】
git config --global alias.p '!ping' 【注意使用!】
之后git p和ping等价
.gitignore文件
.gitignore文件采用glob模式进行匹配。【glob 模式是指 shell 所使用的简化了的正则表达式】
可以在根目录下有一个,子目录下也可以有
| 字符 | 匹配 |
|---|---|
| * | >=0个字符 |
| ? | 1个字符 |
| [abc] ([a-c])、[0-9] | 一个其中的任意一个字符 |
| ** | 任意中间目录 |
一个示例:
|
|
Github提供了常用的.gitignore文件:
github/gitignore: A collection of useful .gitignore templates