用户信息
git config --global user.name "John Doe" $
git config --global user.email johndoe@example.com
获取 Git 仓库(已暂存和未暂存的 )
git init
git clone
git status 要查看哪些文件处于什么状态 你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出
git add 使用命令 git add 开始跟踪一个文件
git diff 你想知道具体修改了什么地方,可以用 git diff 命令 若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令
git commit 现在的暂存区域已经准备妥当可以提交了。
你也可以在 commit 命令后添加 -m 选项,将提交信息与命令放在同一行 (git commit -m “修改信息”)
(git commit -a -m '修改信息')跳过add
git rm file 要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除确切地说,是从暂存区域移除)
如果删除之前修改过并且已经放到暂存区域的话,则必须要用 强制删除选项 -f(git rm file -f)
git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式
git rm log/\*.log 注意到星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。 此命令删除 log/ 目录下扩展名为 .log 的所有文件
git rm \*~ 该命令为删除以 ~ 结尾的所有文件。
git mv file_from file_to 你看到 Git 的 mv 命令时一定会困惑不已。 要在 Git 中对文件改名
git log 查看提交历史,git log 会按提交时间列出所有的更新,
git log -p 一个常用的选项是 -p,用来显示每次提交的内容差
git log -2 来仅显示最近两次提交
git log --stat 你想看到每次提交的简略的统计信息
-p 按补丁格式显示每个更新之间的差异。 --stat 显示每次更新的文件修改统计信息。 --shortstat 只显示 --stat 中最后的行数修改添加移除统计。 --name-only 仅在提交信息后显示已修改的文件清单。 --name-status 显示新增、修改、删除的文件清单。 --abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 --relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
git commit --amend 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选 项的提交命令尝试重新提交
git reset HEAD <file> 来取消暂存。
git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文 件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。
查看远程仓库
git remote 想查看你已经配置的远程仓库服务器,可以运行 git remote 命令
可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简 写
git fetch [remote-name] 远程仓库中获得数据,
git push origin master 你想分享你的项目时,必须将其推送到上游。
git remote show [remote-name] 想要查看某一个远程仓库的更多信息,可以使用 git remote show [remote-name] 命令。 如果想以 一个特定的缩写名运行这个命令,例如 origin(分支)
git remote rename pb paul 如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:
git remote rm [分支名称] 因为一些原因想要移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者 某一个贡献者不再贡献了 - 可以使用 git remote rm
打标签
git tag Git 中列出已有的标签是非常简单直观的
git tag -l 'v1.8.5*' 你也可以使用特定的模式查找标签。 例如,Git 自身的源代码仓库包含标签的数量超过 500 个。 如果只对 1.8.5 系列感兴趣,
git tag -a v1.4 -m 'my version 1.4' Git 中创建一个附注标签是很简单的。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:-m 选项指定了一条将会存储在标签中的信息。
git show,你不会看到额外的标签信息。 命令只会显示出提交信息:
git checkout -b [branchname] [tagname] Git 中你并不能真的检出一个标签,因为它们并不能像分支一样来回移动。 如果你想要工作目录与仓库中特定 的标签版本完全一样,可以使用 git checkout -b [branchname] [tagname] 在特定的标签上创建一个 新分支
git 别名
Git 并不会在你输入部分命令时自动推断出你想要的命令。 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。
$ git config --global alias.ci commit 这意味着,当要输入 git commit 时,只需要输入 git ci
git分支
git branch test 分支创建
git checkout testing 切换分支
git log --oneline --decorate --graph --all ,它会输出你的提交历史、各个分支的指向以及项目的分支分叉情况。
git checkout -b iss53 创建iss53分支 并且切换倒此分支
$ git checkout master $ git merge hotfix 切换倒主分支,并且合并主分支与hotfix分支
git merge a 合并分支,把a分支的内容移到正在操作的分支中
git branch -d hotfix 删除hotfix分支
git branch -v 查看每一个分支的最后一次提交
--merged 与 --no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支
git branch -D testing 强制删除testing分支,用小写d可能失败,D强制删除
git ls-remote (remote) 来 显式地获得远程引用的完整列表
git fetch origin 命令。 这个命令查找 “origin” 是哪一个服务器(在本例 中,它是 git.ourcompany.com),从中抓取本地没有的数据,并且更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。
git push origin serverfix:awesomebranch 来将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支。
git pull,Git 能自动地识别去哪 79 个服务器上抓取、合并到哪个分支。
git branch -vv 选项。 这会将所有的本地分支列出来并且包 含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有
git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然 后让你自己合并。 然而,有一个命令叫作 git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令
git push origin --delete serverfix 有 --delete 选项的 git push 命令来删 除一个远程分支。 如果想要从服务器上删除 serverfix 分支
网友评论