用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。使用 --global
选项,表明全局有效。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
检查配置信息
如果想要检查你的配置,可以使用 git config --list
命令来列出所有 Git 当时能找到的配置。
你可以通过输入 git config <key>
: 来检查 Git 的某一项配置
$ git config user.name
John Doe
在现有目录中初始化仓库
如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:
$ git init //仓库初始化
$ git add LICENSE //添加LICENSE到下一次提交列表中
$ git commit -m 'initial project version' //提交到本地仓库,并输入标题
克隆现有的仓库
$ git clone https://github.com/libgit2/libgit2
检查当前文件状态
$ git status 或 git status -s
跟踪新文件/暂存已修改文件
$ git add CONTRIBUTING.md
将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适.
查看已暂存和未暂存的修改
要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff。
若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached
或git diff --staged
命令。
如果你喜欢通过图形化的方式或其它格式输出方式的话,可以使用 git difftool
命令来用 Araxis ,emerge 或 vimdiff 等软件输出 diff 分析结果。 使用 git difftool --tool-help
命令来看你的系统支持哪些 Git Diff 插件。
提交更新
$ git commit
你可以在 commit
命令后添加 -m
选项,将提交信息与命令放在同一行
$ git commit -m "Story 182: Fix benchmarks for speed"
你也可以在 commit
命令后添加 -a
选项,将自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add
步骤:
移除文件
git rm
命令用于将文件从已跟踪文件清单移除,并连带从工作目录中删除指定的文件:
$ rm PROJECTS.md //本地删除删除文件
$ git rm PROJECTS.md //Git记录此次删除操作
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f 。
如果我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。可以使用 --cached
选项:
$ git rm --cached README
移动文件
$ git mv file_from file_to
查看提交历史
$ git log
一个常用的选项是 -p
,用来显示每次提交的内容差异。 你也可以加上 -2
来仅显示最近两次提交。如果你想看到每次提交的简略的统计信息,你可以使用 --stat
选项
撤消操作
git commit --amend
这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。最终你只会有一个提交——第二次提交将代替第一次提交的结果。
取消暂存的文件
如果实际操作时,不小心git add一个多余的文件,可以使用git reset HEAD <file>...
来取消这个文件的暂存。
撤消对文件的修改
$ git checkout -- CONTRIBUTING.md
Git分支创建及切换
$ git branch mybreach //创建分支
$ git checkout mybreach //切换分支
分支合并及删除
$ git branch -d mybreach //删除分支
$ git merge mybreach //合并分支
合并冲突解决
运行 git mergetool,该命令会为你启动一个合适的可视化合并工具,并带领你一步一步解决这些冲突。
分支管理
git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表。
$ git branch -v //查看每一个分支的最后一次提交
$ git branch --merged //查看已合并分支,这些分支可以被删除而不会失去任何东西
$ git branch --no-merged //查看未合并分支,此时删除会失败,需要-D以强制删除
运行 git fetch mybranch 来抓取远程仓库mybranch 有而本地没有的数据.