git (项目提交)
# 常用命令
>w https://gitee.com/ [url](https://gitee.com) 上传项目 微信
>w https://github.com/ [url](https://github.com) 开源项目
```
git status -s
git add .
git commit -m "注释"
git pull
:q! 不保存
git push
```
git clone
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)
git status
以查看在你上次提交之后是否有修改。我演示该命令的时候加了 -s 参数,以获得简短的结果输出
"AM"
状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add 命令将其添加到缓存中:
git add
当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git commit
而执行 git commit 将缓存区内容添加到仓库中。
$ git commit -m '第一次版本提交'
--------- --------- 用 -m 选项以在命令行中提供提交注释。
git commit -a
--------- 如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步
git commit -am '修改 hello.php 文件'
--------- --------- --------- [master 71ee2cb] 修改 hello.php 文件 1 file changed, 1 insertion(+)
$ git reset HEAD hello.php
--------- -------- git reset HEAD 命令用于取消已缓存的内容。
git rm -f <file>
只是简单地从工作目录中手工删除文件
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中 --cached
git rm –r *
进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录。
$ git mv README README.md
对其重命名: mv
git push:是将本地库中的最新信息发送给远程库;
git pull:是从远程获取最新版本到本地,并自动merge;
git fetch:是从远程获取最新版本到本地,不会自动merge;
git merge:是用于从指定的commit(s)合并到当前分支,用来合并两个分支;
"working directory clean:干净的工作目录"。
:q! 不保存
A: 你本地新增的文件(服务器上没有).
C: 文件的一个新拷贝
.
D: 你本地删除的文件(服务器上还在)
.
M: 文件的内容或者mode被修改了
.
R: 文件名被修改了。
T: 文件的类型被修改了。
U: 文件没有被合并(你需要完成合并才能进行提交)。
X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)。
# .gitignore

## .gitignore规则不生效
先push 在添加.gitignore 规则不生效
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'