liuzhanjinggit操作


初始化项目

git init

提交修改文件到暂存区

git add *.c (all files end by .c)

git add readme

提交暂存区文件到仓库

git commit -m “tag you want to add”

从现有仓库克隆

git clone

git clone git://github.com/liuzhanjing/liuzhanjing.github.io.git

会在当前目录新建一个名字为 liuzhanjing.github.io 的目录,保存下载的所有项目文件

git clone git://github.com/liuzhanjing/liuzhanjing.github.io.git mydir

唯一差别就是新建的目录变成了mydir.

检查当前文件处于什么状态

git status

跟踪新文件 git add开始跟踪一个新文件

git add [filename]

忽略某些文件`.gitignore`里面添加.

#此为注释 – 将被 Git 忽略

#忽略所有 .a 结尾的文件

*.a

#但 lib.a 除外

!lib.a

#仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO

/TODO

#忽略 build/ 目录下的所有文件

build/

#会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

doc/*.txt

#ignore all .txt files in the doc/ directory

doc/*/.txt

git diff 查看当前文件和暂存区区别. git diff --cached查看暂存区和仓库问价区别.

git commit提交更新.

git commit -v将每一次提交差异写进注释; -m自定义提交说明 说明:-v显示的提交差异不会提交到仓库,-m的说明会提交.

移除文件git rm
直接在本机 rm 文件后则还需要进行 git rm 才不会报错.如果仅希望在仓库里rm 而在本地继续保留以便稍后添加进 .gitignore 则使用git rm ... --cached.

移动文件 git mv 相当于:

mv a b

git rm a

git add b

查看历史 git log 参数有 -p -2 --word-diff --pretty=oneline

撤销操作

修改上一次提交

git commit –amend
(类似于补充,添加 amend参数后提交会和上一次提交合并为一次提交.

取消暂存

git reset HEAD [filename]

取消修改(回复到上一提交版本)

git checkout –[filename]
(谨慎使用,会把当前修改消除)

远程仓库

git remote -v #查看当前远程仓库

git remote add [shortname] [url] #将一个远程仓库添加进来并命名为shortname 以后操作不要每次都输入url了

git fetch shortname #抓取远程仓库shortname里本地没有的信息

此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。(我们会在第三章详细讨论关于分支的概念和操作。)

如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

git push shortname branch-name

推送到shortnamebranch-name分支

git remote show shortname # 查看远程仓库信息

git remote rename shortnameA shortnameB #远程仓库重命名

git remote rm shortname # 删除远程仓库

打标签