1.git配置与开始
git config --list #查看git配置信息
若你使用 Git 时需要获取帮助,有三种方法可以找到 Git 命令的使用手册
git help <verb>
git <verb> --help
$man git-<verb>
例如,要想获得 config 命令的手册,执行:
git help config
2.初始化本地仓库
1.如果你打算使用 Git 来对已有项目进行追踪,你需要进入项目目录并输入:git init
git init
该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。
2.如果在一个已存在文件的文件夹(而非空文件夹)中进行版本控制,你应该开始追踪这些文件并进行初始提交。 可以通过 git add 命令来指定所需的文件来进行追踪,然后执行 git commit :
git add *.c #指定追踪后缀为.c的文件
git add LICENSE # 指定追踪授权文件
git commit -m 'initial project version' #提交被追踪的文件
3.如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone 命令:git clone [url]
# git clone [url]
# 要克隆 Git 的链接库 libgit2,可以用下面的命令:
git clone https://github.com/libgit2/libgit2 mylibgit
# 这会在当前目录下创建一个名为 “mylibgit” 的目录,并在这个目录下初始化一个
# .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,
# 然后从中读取最新版本的文件的拷贝。
3.Git 基础 - 记录每次更新到仓库
1.工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能是未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有被放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。
2.可以用 git status 命令查看哪些文件处于什么状态:
git status #查看哪些文件处于什么状态
3.git不会自动跟踪新添加的文件,除非通过命令告诉git跟踪新文件,这时被追踪的文件处于暂存状态,还没被提交。link:
git add 新文件名 #开始跟踪一个文件,但运行该命令后新文件还没被commit
4.更改被追踪的文件后,可继续用git add命令将修改内容添加内容到下一次提交中;注意:使用commit提交时,只会提交git add过的修改,而没用git add过的修改则不会被提交;
5.忽略文件:一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。 来看一个实际的 .gitignore 例子:
cat .gitignore
*.[oa] #忽略.o,.a文件
*~ #忽略末尾有波浪线文件
6.提交更新:现在的暂存区域已经准备妥当可以提交了git commit,这是会启动编辑器要求输入修改说明
git commit #提交所有git add过的修改,并启动编辑器
git commit -m "提交信息" #提交所有git add过的修改,不启动编辑器
git commit -a -m "提交信息" #提交所追踪过的文件,跳过git add步骤
7.移除文件:要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交;可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了:
git rm 文件名 #从暂存区移除文件
rm 文件名 #仅仅删除本地文件,没有删除暂存区的文件
git rm --cached 文件名 #文件从从暂存区域移除,但仍然希望保留在当前工作目录中
8.仓库中文件重命名:git mv 旧名 新名
git mv 旧名 新名
该命令相当于一下三条命令:
mv README.md README #将README.md重新命名为README
git rm README.md #取消对README.md的追踪
git add README #添加对README的追踪
4.Git 基础 - 查看提交历史
1.查看提交历史:
在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的工具是 git log 命令:其他详细用法参考:link
git log #列出所有提交的简要信息
git log -p -2 #选项-p会显示每次提交所引入的差异,选项-2表明最近的两次提交的差异
git log --stat #每次提交的简略统计信息可以使用--stat选项
5.Git 基础 - 撤消操作
1.你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
git commit -m 'initial commit' #提交文件
git add forgotten_file #forgotten_file:修改后忘记提交的文件
git commit --amend #运行此命令forgotten_file不会被当做一次额外提交
2.取消暂存文件:例如,你已经修改了两个文件并且想要将它们作为两次独立的修改提交,但是却意外地输入了 git add * 暂存了它们两个。 如何只取消暂存两个中的一个呢?采用git reset HEAD:
git reset HEAD CONTRIBUTING.md #如CONTRIBUTING.md是误暂存的文件,采用该命令取消修改暂存
3.撤消对文件的修改:(在 Git 中任何 已提交的 东西几乎总是可以恢复的,任何你未提交的东西丢失后很可能再也找不到了)
如果你并不想保留对 CONTRIBUTING.md 文件的修改怎么办? 你该如何方便地撤消修改,将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)?
git checkout -- CONTRIBUTING.md #如果CONTRIBUTING.md被修改但还未暂存,该命令回复修改前模样
6.Git 基础 - 远程仓库的使用
管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
1.如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字:
示例:
$ git clone https://github.com/schacon/ticgit #克隆远程仓库到本地文件夹
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit #定位到新克隆的仓库所在的文件夹
$ git remote #查看你已经配置的远程仓库服务器
origin #新克隆仓库后运行git remote命令的默认输出
2.添加远程仓库:
(1)运行 “git remote add <shortname> <url> ”添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写:
例如:
git remote add pb https://github.com/paulboone/ticgit #pb是给该残酷的简写名称(shortname)
git remote -v #查看已添加的远程仓库,-v选项可查看仓库的拉取(fetch)和推送(push)权限
git fetch pb #拉取远程仓库pb中本地没有的信息到本地仓库中,pb是有fetch权限的远程仓库的shortname
(2)如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写:
git fetch origin #抓取克隆(或上一次抓取)后,新推送的所有工作
(3)注意 git fetch 命令会将数据拉取到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。
3.推送到远程仓库:
当你想分享你的项目时,必须将其推送到上游。 这个命令很简单:git push [remote-name] [branch-name]。 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字),那么运行这个命令就可以将你所做的备份到服务器:
git push origin master #推送至origin仓库的master分支上
4.查看某个远程仓库:
如果想要查看某一个远程仓库的更多信息,可以使用 git remote show [remote-name] 命令
6.远程仓库的移除与重命名
如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:
git remote rename pb paul #将远程仓库pb重新命名为paul
git remote rm paul #删除远程仓库paul,即切断本地仓库和paul仓库的脸,paul仓库本身不会被删
7.git标签
·····
8.别名
…
7.删除本地仓库
要删除本地仓库删除 .git文件夹即可,有时 .git文件夹是隐藏不可见的,使用以下命令即可删除 .git文件夹:
rm -rf .git