Directory: 文件存储的文件夹
Repository: git管理的存档
StagingArea: 临时存档区,准备提交给git管理的区域
初始化
进入到Directory后,使用
git init
初始化repository.
此时目录内会生成一个.git的文件夹(隐藏).
查询
- 查询当前repo状态
git status
查看当前repo的状态。比如
提示 | 含义 |
---|---|
staged | 此时文件已在StagingArea存档 |
unstaged | 受git管理的文件(文件可能已在repo存档也可能只存在于stagingArea),但发生变化且未存档 |
untracked | 此时文件只存在于Directory,但不在Repository和StagingArea (这种状态通常标识着文件是刚创建的) |
deleted | 被删除 unstaged的一种特殊状态 |
2)查询commit的历史纪录
git log
git log --summary
查看更详细的log
添加文件记录
注意git add并不只代表添加文件,也可以是删除或提交更改。所以这里的标题未添加文件记录。
这里的git add会把相关文件记录提交到StagingArea里面。
git add filename
添加单个文件
git add .
添加当前目录
也可以使用wildcard添加某一类的文件:
git add *.lua
添加目录下所有lua源代码
回滚
git reset <filename>
从StagingArea删除记录
git checkout --<filename>
把文件返回到上一个commit
回滚commit
git reset --hard <commit id>
回滚
git push -f origin HEAD:<branchname>
提交远程
提交/存档
当使用git add的时候,只是把记录存放到Staging Area。
使用 commit
指令会快照一份我们当前repo。
git commit -m "comments"
: -m
选项后面跟着注释,方便我们随后理解时间线的每个快照记录。
托管
有时我们需要在多个地方处理档案。所以可以把repo托管到云端。
-
添加云端
git remote add <remotename> <remoteurl>
这里的remote name就是代表remoteurl。可以当成一个远程url的标识。
例如在github上建立一个repo,然后repo会有一个url。这里初始remote name通常惯例命名为origin,但是也可以命名为别的。
示例:
git remote add origin https://github.com/lexnewgate/cocos_bunny_game.git
-
推送到云端
上面添加云端只是定义了一个叫"origin"的云端。但是我们并未存储到云端。这里我们使用如下指令:
git push -u origin master
其中origin是云端的名字,master是我们的分支名字。-u
参数则让git push
记录这两个参数。下次我们直接使用git push
命令即可。 -
获取更新
git pull
对比
git diff
当前目录和最后一次commit的区别
分支
git branch
显示当前分支
git branch <branchname>
创建分支
git branch <branchname>
切换分支
git merge <otherBranch>
合并分支
git branch -d <branchname>
删除分支
git branch -D <branchname>
强制删除分支(分支未merge)
git push origin -d <branchname>
删除远程分支
git checkout -b <branchname>
创建并切换分支
删除
删除指令不仅删除实际文件也会帮我们把删除记录在stagingArea里方便我们提交
git rm <filename>
删除某个文件
git rm *.txt
wildcard示例
git rm -r <dirname>
删除整个文件夹
如果是通过手动删除,如果想commit时直接存档,则需要加上-a
git commit -am <comments>
网友评论