git基本概念
设置git信息
git config --global user.name "[name]"设置提交时的用户名git config --global user.email "[email]"设置提交时的用户邮箱git config --global color.ui auto设置命令行颜色
新建仓库
git init [project-name]代码文件夹初始化gitgit clone [url]克隆项目仓库(包含整个版本信息)
修改
git status列出所有即将被提交的新建和更改的文件git diff显示所有未加入暂存区的差异git add [file]- git add -A: [
<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。 - git add -i: [
<path>]查看<path>中被所有修改过或已删除文件但没有提交的文件,并通过其revert子命令可以查看<path>中所有untracted的文件,同时进入一个子命令系统。
- git add -A: [
git diff --staged显示暂存区文件与最新文件版本的差异git reset [file]取消文件暂存,但保留其内容git commit -m "[descriptive message]"-m指后面可以直接输入message,否则需要调用编辑器-a命令后,与单独执行git add类似,但不会将新文件加入暂存区,因而不推荐使用-v命令可以在提交时显示所有diff信息
分工协作
git branch默认无参数时,列出所有本地的当前仓库的分支git branch [branch-name]在本地创建一个新的分支git checkout [branch-name]切换到指定的分支并更新当前工作区git merge [branch]将指定分支的代码历史拼合到当前分支git branch -d [branch-name]删除指定的分支(慎用)
文件编辑
git rm [file]将文件从当前工作区删除,暂存删除操作git rm --cached [file]将文件从版本控制中移除,但本地保留文件git mv [file-original] [file-renamed]修改文件名称,准备提交
跟踪设置
.gitignore设置当前目录下版本控制自动忽略的文件,后缀或指定文件夹均可git ls-files --other --ignored --exclude-standard列出当前项目下所有忽略的文件
碎片储存
git stash临时保存所有的已跟踪的修改,以下命令都可以通过传入@n删除指定的更改git stash pop恢复最近一次暂存的修改,并从栈中移除git stash list列出栈中所有已暂存的修改条目git stash drop直接放弃最近一次暂存的更改
查看历史
git log列出当前分支的版本历史git log --follow [file]列出指定的文件的版本历史,包括重命名git diff [first-branch]...[second-branch]显示两个分支的内容差异git show [commit]输出指定提交的metadata以及内容变化
撤销操作
git reset [commit]撤销指定[commit]后所有的提交,保留本地更改git reset --hard [commit]删除所有的更改和历史,回退到指定的[commit]
同步更改
git fetch [bookmark]下载从[bookmark]所有的更改历史git merge [bookmark]/[branch]组合[bookmark]分支到当前分支git push [alias] [branch]上传所有本地分支的提交到git服务器git pull下载书签历史以及非协作变化