Git文件的状态
- 已修改modified-文件被修改了,但是还没有提交保存。
- 已暂存staged-已修改的文件放在下次提交时要保存的清单中。
- 已提交committed-文件已经被安全地保存在本地数据库中。
初始化
git init
将文件纳入版本控制
git add filename
告诉Git开始对这些文件进行跟踪
提交文件
git commit -m commitMessage
提交的时候不会记录这些还没暂存(git add)起来的变化。
git commit -a
跳过暂存区域。
克隆仓库
git clone url
git clone url foldName
查看文件当前状态
git status
忽略某些文件
.gitignore
查看已暂存和未暂存的更新
git diff
比较工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
git diff --staged
已暂存起来的文件和上次提交时的快照之间的差异。
移除文件
git rm filename
git mv fileForm fileTo
移动文件(重命名)
查看历史提交
git log
git log -p -2
-p展开显示每次提交的内容差异 -2显示最近的两次更新。
git log --stat
显示简要的增改行数统计。
gitk
修改最后一次提交
git reset HEAD filename
撤销最近一次的暂存操作。
查看当前的远程库
git remote -v
添加远程仓库
git remote add [shortName] [url]
推送数据到远程仓库
git push [remoteName] [branchName]
git push origin master
(克隆操作会自动使用默认的master和origin名字,master-分支名,origon-服务器名)
查看远程仓库信息
git remote show [remoteName]
创建分支
git branch branchName
这会在当前commit对象上新建一个分支指针。注意,仅仅是创建,并不会自动切换过去。
切换分支
git checkout branchName
合并分支
git merge branchName
分支管理
git branch
列出分支清单
git branch -v
列出分支清单和最后一次commit的信息
git branch --merged
列出与当前分支合并的分支(哪些分支是当前分支的直接上游)
git branch --no-merged
列出尚未与当前分支合并的分支。
推送本地分支
git push [远程仓库] [分支名]
拉取远程分支
git pull
撤销
撤销是文件视角。
git checkout filename
撤销未add的文件。
git checkout HEAD filename
撤销未commit的文件。
git reset filename
撤销add
撤销已经commit的文件到指定版本
git checkout <版本号> filename
git add filename
git commit -m xxxx
回滚
回滚是分支视角。
本地分支回滚到远程分支:删除本地分支,重新fetch/pull
git checkout -B master
随便切换个别的分支。
git branch -D test
把本地分支删除
git fetch
更新下远程引用分支
git checkout test