?基本原理
- 工作区:自己电脑上看到的项目,也就是自己写的代码。
- 暂存区:介于工作区和版本库之间的一个缓冲区(保存在
.git/index ),用户改过的代码必须先执行git add 添加到暂存区,然后才能执行git commit 将代码更改同步到版本库分支。另外,git commit -a 可以一次性将代码的更改和删除添加到缓存区并同步到版本库,但新建的文件不会添加到缓存区,还是要用git add 添加。 - 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
- HEAD:指向 master 分支的一个"游标"。图示的命令中出现 HEAD 的地方可以用 master 来替换。
假设项目结构为
|--MyProject/
|--.git/
|--text.txt
|--readme.md
🍅常用命令
分支管理(初始默认master分支)
git branch [branchname]
git checkout [branchname]
git checkout -b [branchname]
git add 从工作区向暂存区添加更改
git add [file1] [file2]
git add [dir]
git add .
git add -u
git add -A
git checkout
git checkout <filename>
git checkout .
git checkout master
git checkout master <filename>
git checkout -f
从暂存区提交更改到版本库
git commit -m "本次提交说明信息"
温馨提示
当不确定某个命令的使用方法时,可以用-h 查看说明,例如git add -h 将看到git add 的用法如下
root@XD-PC:~# git add -h
usage: git add [<options>] [--] <pathspec>...
-n, --dry-run dry run
-v, --verbose be verbose
-i, --interactive interactive picking
-p, --patch select hunks interactively
-e, --edit edit current diff and apply
-f, --force allow adding otherwise ignored files
-u, --update update tracked files
--renormalize renormalize EOL of tracked files (implies -u)
-N, --intent-to-add record only the fact that the path will be added later
-A, --all add changes from all tracked and untracked files
--ignore-removal ignore paths removed in the working tree (same as --no-all)
--refresh don't add, only refresh the index
--ignore-errors just skip files which cannot be added because of errors
--ignore-missing check if - even missing - files are ignored in dry run
--chmod (+|-)x override the executable bit of the listed files
--pathspec-from-file <file>
read pathspec from file
--pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character
🍉常用操作
强制覆盖本地代码
git fetch --all
git reset --hard origin/master
|