1 命令列表
Status命令:
git status : 查看当前状态,有提示信息。
- “Changes not staged for commit”,已跟踪文件的内容发生了变化,但还没有放到暂存区,文件在工作区内。
- “Changes to be committed”,表示文件处于暂存区域。
Push命令:
git add -am “add comment here” 提交改动(包括新增文件)
git commit -am “add comment here” 提交改动(包括删除和修改), 与github desktop中的 commit功能一样。
git push :把本地的代码更新到远程版本库中。例如:git push origin与github desktop中过的sync功能一样。
git push origin master : push本地的改动到master分支
git push origin master:lewitest : 把本地的master分支提交到远程origin的lewitest分支上,如果远程没有lewitest分支,则创建之。
git push origin :lewitest : 删除远程的lewitest分支。
Commit命令
git commit -m “commit reason”
提交时内容为放在暂存区域的快照,任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。
git commit -a -m “commit reason” :
-a, 把所有已经跟踪过的文件暂存起来一并提交, 跳过使用暂存区域。
Reset命令
git reset HEAD README.md :取消暂存区域中的文件。文件内容不变,回到工作目录。
Checkout命令
git checkout – README.md :工作区内已修改文件(不在暂存区域),抛弃文件修改, 恢复到修改前的版本。
Pull命令
git pull origin master : 从远程origin拉取master分支的内容,然后合并到当前的本地分支。
Fetch命令
fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
Merge命令
git merge branch_name : 合并分支
Log命令:
git log :查看历史日志
git log -p -2 : -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新。
branch命令:
git branch :列出所有的分支
git branch add test:增加test分支
git checkout test: 切换到test分支
git branch -D test : 删除test分支
Tag命令:
git tag :查看tag信息
git tag stage1 :增加名为stage1的tag
git push origin –tags : push tage到服务器
Remote命令:
git clone https://github.com/lewiyue/Spoon-Knife.git clone目录
git remote -v
git remote add upstream https://github.com/octocat/Spoon-Knife.git
git remote rename pb paul
对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master。
git remote rm paul 移除对应的远端仓库
2 注意
git help remote可以查看所有git-remote的用法
git status有提示操作信息
HEAD是一个指向你正在工作中的本地分支的指针
3 图表
3.1 文件的三种状态
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
3.2 文件的更新
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。