一、创建仓储
1、本地目录转换为 Git 仓库
$ cd /home/user/my_project
$ git init
2、服务器克隆
$ git clone https://github.com/lib/ myname
二、更新仓储
1、检查文件状态
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
nothing to commit, working directory clean
$ git status -s
简洁的方式查看更改,输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
2、跟踪新文件/暂存修改
$ git add README
这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区
3、忽略文件
工作目录下创建.gitignore 的文件,在文件中列出要忽略的文件的模式。
忽略所有的 .a 文件
*.a
但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
忽略任何目录下名为 build 的文件夹
build/
忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表, 你可以在 https://github.com/github/gitignore 找到它。
4、查看已暂存和未暂存的修改
要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff,是修改之后还没有暂存起来的变化内容。
$ git diff
若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged 命令。 这条命令将比对已暂存文件与最后一次提交的文件差异:
$ git diff --staged
5、提交更新
现在的暂存区已经准备就绪,可以提交了。
$ git commit
给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
6、移除文件
将文件从暂存区和工作区中删除
$ git rm PROJECTS.md
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。强行从暂存区和工作区中删除修改后的 runoob.txt 文件:
$ git rm -f runoob.txt
如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:
$ git rm --cached README
7、移动文件
$ git mv README.md README
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)
renamed: README.md -> README
其实,运行 git mv 就相当于运行了下面三条命令:
$ mv README.md README
$ git rm README.md
$ git add README
8、查看提交历史
$ git log
9、撤消操作
$ git commit -m ‘initial commit’
$ git add forgotten_file
$ git commit --amend
第二次提交将代替第一次提交的结果。而不是新提交一次
$ git reset HEAD < filename >
取消暂存
$ git checkout – < filename >
撤消对文件的修改
三、远程仓储
1、添加远程仓库
git clone 命令是自行添加远程仓库,默认名称origin
$ git remote -v
查看远程仓储
git remote add < shortname> < url>
添加一个新的远程 Git 仓库,同时指定一个方便使用的简写
2、从远程仓库中抓取与拉取
$ git fetch < remote>
3、推送到远程仓库
git push < remote> < branch>
$ git push origin master
git remote show < remote>
看某一个远程仓库的更多信息
4、远程仓库的重命名与移除
你可以运行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:
$ git remote rename pb paul
$ git remote
origin
paul
值得注意的是这同样也会修改你所有远程跟踪的分支名字。 那些过去引用 pb/master 的现在会引用 paul/master。
如果因为一些原因想要移除一个远程仓库——你已经从服务器上搬走了或不再想使用某一个特定的镜像了, 又或者某一个贡献者不再贡献了——可以使用 git remote remove 或 git remote rm :
$ git remote remove paul
$ git remote
origin
一旦你使用这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除。