初始化项目
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
推送到shortname
的branch-name
分支
git remote show shortname # 查看远程仓库信息
git remote rename shortnameA shortnameB #远程仓库重命名
git remote rm shortname # 删除远程仓库
打标签
近期评论