1.创建目录并且初始化
$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
# 在 /www/runoob/.git/ 目录初始化空 Git 仓库完毕。
2.查看
ls -a
3.拷贝远程到本地
#查看远程仓库
git remote -v
git clone [url]
# git_url 为你的远程仓库的 url,可采用 http 协议或 ssh(git) 协议
git remote add origin <url>
# 删除远程仓库
git remote remove <name>
4.git操作
4.1 git add
git add 命令可将该文件添加到缓存,如我们添加以下两个文件:
$ touch README
$ touch hello.php
$ ls
README hello.php
$ git status -s
?? README
?? hello.php
$
接下来我们执行 git add 命令来添加文件:
$ git add README hello.php
4.2 git status 命令用于查看项目的当前状态。
现在我们再执行 git status,就可以看到这两个文件已经加上去了。
$ git status -s
A README
A hello.php
$
新项目中,添加所有文件很普遍,我们可以使用 git add . 命令来添加当前项目的所有文件。
现在我们修改 README 文件:
$ vim README
在 README 添加以下内容:# Runoob Git 测试,然后保存退出。
再执行一下 git status:
$ git status -s
AM README
A hello.php
"AM" 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add 命令将其添加到缓存中:
$ git add .
$ git status -s
A README
A hello.php
当你要将你的修改包含在即将提交的快照里的时候,需要执行 git add。
4.3 git status
git status 以查看在你上次提交之后是否有修改。
我演示该命令的时候加了 -s 参数,以获得简短的结果输出。如果没加该参数会详细输出内容:
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README
new file: hello.php
4.4 git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
- 尚未缓存的改动:git diff
- 查看已缓存的改动: git diff --cached
- 查看已缓存的与未缓存的所有改动:git diff HEAD
- 显示摘要而非整个 diff:git diff --sta
4.5 git commit -m "备注"
4.6 git push origin master
4.6.1 git push -u origin master -f #强制push,不管冲突
用来提交本地项目
4.7 git pull
- 描述:git pull 默认是git fetch + git merge
- git pull --rebase 执行过程中会将本地当前分支里的每个提交(commit)取消掉,然后把将本地当前分支更新为最新的"origin"分支,可能会造成本地项目文件丢失
- git rebase --abort ,git rebase --skip 则会将引起冲突的commits丢弃掉,
4.8 git config --list 可查看当前用户信息以及其他的一些信息
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
5 git中遇见的问题
5.1 linux环境下取消初始化
rm -f .git/
5.2 push 失败
5.2.1 remote有存在的文件 需要先进行merge在进行push
git pull origin master
push操作
git push origin master
6原理
6.1工作区 缓存区 版本库(图片非本人制作)
github搜索操作
- in:name 关键词 in:descripton 关键词 in:readme 关键词
- 明确搜索 star、fork 数大于多少的 stars: > 数字 关键字。 如果要找在指定数字区间的话,使用stars: 10..20 关键词 fork 数同理,将上面的 stars 换成 fork,其它语法相同
- size:>=5000 关键词
- pushed:>2019-01-03 spring cloud
- language:java 关键词