git 使用
三个状态
文件由 git 维护三中状态
- modified:文件被改动,但还没有被提交
- staged:标记被改动的文件到下次需要提交的文件快照
- committed:文件已经被安全保存到本地
可以使用命令 git status
查看文件状态,可以添加参数 -s
查看简单信息
git status -s
创建仓库
要对现有的某个项目开始用 git 管理,只需到此项目所在的目录执行
git init
初始化后,在当前目录下会出现一个名为 .git
的目录,所有 git 需要的数据和资源都存放在这个目录中
也可以直接复制线上仓库到本地
git clone [url]
url 支持三种形式
- git://
- http(s)😕/
- user@server:/path.git
身份认证
每次 git 提交时都会引用这两条信息,说明是谁提交了更新,所以新建一个 git 仓库后需要设置用户信息
git config --global user.name "Your username"
git config --global user.email "Your email"
使用了 --global
选项后就可以不用每次设置了
基本命令
可以使用以下命令使文件在三种状态间切换
也可以跳过中间状态切换
除了这几条命令,如果想对刚才做的 commit 做适当修改,可以紧接着写修改的操作,然后执行命令
git commit --amend
如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend
提交:
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
删除文件
如果只是简单地从工作目录中手工删除文件,运行 git status
时就会在 Changes not staged for commit
的提示
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作
git rm <file>
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm -f <file>
如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用--cached
选项即可
git rm --cached <file>
diff
git status
的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff
命令
git diff
比较的是工作目录中 当前文件 和 暂存区域快照 之间的差异,也就是修改之后还没有暂存起来的变化内容
若要看 已经暂存起来的文件 和 上次提交时的快照 之间的差异,可以用 git diff --cached
命令
branch
查看分支
git branch
切换分支
git checkout <branch_name>
新建分支
git branch <branch_name>
新建并切换分支
git checkout -b <branch_name>
删除本地分支
git branch -d <branch_name>
删除远程分支
git push origin :<branch_name>
参考