0 如何获取Git仓库?
方法1:在现有项目或目录下导入所有文件到Git中
方法2 :从一个服务器克隆一个现有的Git仓库:git clone [url]
说明:
1 Git克隆的是该Git仓库服务器上的几乎所有数据。
2 Git支持多种协议:https://,git://,SSH传输协议
1 如何配置并初始化一个仓库(repository)、 开始或停止跟踪(track)文件、暂存(stage)或提交(commit)更改?
初始化一个仓库:git init 该命令创建一个名为.git的子目录,这个子目录含有初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。
跟踪文件:git add 该命令实现对指定文件的跟踪
提交文件:git commit 该命令实现对指定文件的提交
说明:
1 工作目录下的每一个文件的两种状态:已跟踪或未跟踪
2 使用Git时文件的生命周期:???
3 文件同时出现在暂存区和非暂存区?
因为Git暂存了运行git add命令时的版本,如果提交,仓库中保存的是最后一次运行git add命令时的那个版本,而不是运行git commit命令时,在工作目录中的当前版本。
运行了git add之后又做了修改,需要重新运行git add把最新版本重新暂存起来。
4 每次准备提交之前,先用git status看下,是不是都已暂存起来了(git add),然后再运行提交命令git commit。
5 跳过使用暂存区域 git commit -am 'xxxx'
2 如何配置Git来忽略指定的文件和文件模式?
创建一个名为.gitignore的文件,列出要忽略的文件模式。
.gitignore文件的格式规范:
1 所有空行或者以#开头的行
2 glob模式匹配(正则表达式)
3 匹配模式以/开头或者结尾
4 在模式前加上!,然后取反~
3 如何迅速而简单地撤销错误操作?
git reset HEAD <file> 取消暂存的文件
git checkout -- <file> 撤销对文件的修改(即还原成上次提交时的样子,实质:它拷贝了另一个文件来覆盖它)
注意:在Git中任何已提交的东西几乎总是可以恢复的。任何未提交的东西丢失后很可能找不到了。
4 如何浏览项目的历史版本以及不同提交(commits)间的差异?
git log:浏览项目的提交历史。
git log -p -n --stat --pretty=format:"xxxx" --graph
git diff:查看当前做的哪些更新还没有暂存;查看有哪些更新已经暂存起来准备好了下次提交。
git diff 比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。通过文件补丁的格式显示具体哪些行为发生了改变。
git diff --staged 查看已暂存的将要添加到下次提交里的内容。
5 如何向你的远程仓库推送(push)以及从你的远程仓库拉取(pull)文件
git remote 列出你指定的每一个远程服务器的简写。如果你已经克隆了自己的仓库,那么至少应该能看到origin,这是Git给你克隆的仓库服务器的默认名字。
git remote -v 显示需要读写远程仓库使用的Git保存的简写与其对应的URL。
git remote add <shortname> <url> 添加一个新的远程Git仓库,同时指定一个你可以轻松指引用的简写。
git fetch [remote-name] 访问远程仓库,从中拉取所有你还没有的数据。执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。但是它并不会自动合并或修改你当前的工作。当准备好时你必须手动将其合并入你的工作。
git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
git clone 自动设置本地master分支跟踪克隆的远程仓库的master分支。
git push [remote-name] [branch-name] 比如,git push origin master 将master分支推送到origin服务器(必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。)
git remote show [remote-name] 查看某一个远程仓库的更多信息
git remote rename [old-name] [new-name] 把远程仓库重命名
git remote rm [name] 移除远程仓库
6 Git的本地操作
创建或者克隆一个仓库、做更改、暂存并提交这些更改、浏览你的仓库从创建到现在的所有更改的历史
参考资料: