Git 的使用
2019-04-26 本文已影响0人
尤樊容
原来的我对git的认识只停留在
git clone ...
git pull
git init
git add .
git comiit -m 'XXX'
git push
只知道这几个是干嘛的,但是不知道具体是什么原理,自己的代码现在处于什么阶段自己也不清楚,在最近的项目配合当中,对git的使用又有了更深的认识,所以想要记录一下,欢迎指教。
在具体说之前我还想要补充一下Linux的一些命令,我对Linux不太清楚,就是用一点记一点:
ls 查看所有子目录
ls -alf 查看子目录和详细信息
cat test.txt 查看文件内容
:set nu 显示行号
tail -n 3 [文件名] 显示文件最后3行
英文状态下按q 退出git log
mac 终端常用命令和vim普通命令使用可以参考以下链接:https://blog.csdn.net/y2888886/article/details/50468198
vim 中按下ESC后输入:才能进入命令模式!
进入之后输入:
:wq
然后回车就可以了退出了
git的结构
image.pnggit在本地是这样一个结构,图中标记的非常清晰,然后可以通过github新建对应项目和本地git项目建立连接,push到线上。
git的命令行操作
'git init'
初始化仓库,创建一个名为 .git 的子目录
'git clone [url]'
克隆现有的仓库,克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写
'git clone [url] [name]'
在克隆远程仓库的时候,自定义本地仓库的名字
'git status'
检查当前文件状态
'git add [Untracked files]'
添加跟踪文件,git status的时候如果有未跟踪的文件,可以使用此命令添加跟踪文件
'git add -u <==> git add –update '
提交所有被删除和修改的文件到数据暂存区
'git add . '
提交所有修改的和新建的数据暂存区
'git add -A <==>git add –all '
提交所有被删除、被替换、被修改和新增的文件到数据暂存区
.gitignore
忽略文件
文件 .gitignore 的格式规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
'git remote add <shortname> <url> '
添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写
'git remote -v'
显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
'git remote show [remote-name] ==> git remote show origin'
查看远程仓库,会列出远程仓库的 URL 与跟踪分支的信息
'git remote rename ==> git remote rename pb paul'
修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul
'git remote rm [remote-name] ==> git remote rm paul'
移除一个远程仓库
'git fetch [remote-name] ==> git fetch origin'
git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。
当准备好时你必须手动将其合并入你的工作。
'git push [remote-name] [branch-name] ==> git push origin master'
只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。
你必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。
`git diff`
要查看尚未暂存的文件更新了哪些部分
`git diff --staged 或者 git diff --cached`
查看已暂存的将要添加到下次提交里的内容的差异,
查看已经暂存起来的变化:(--staged 和 --cached 是同义词)
'git log'
查看提交历史,会按提交时间列出所有的更新
'git log -p'
显示每次提交的内容差异
'git log -p -2'
显示最近两次提交的内容差异
'git log --stat'
每次提交的简略的统计信息
--stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了
以及被修改过的文件的哪些行被移除或是添加了。
在每次提交的最后还有一个总结。
'git log --pretty=oneline' (常用)
指定使用不同于默认格式的方式展示提交历史
oneline 将每个提交放在一行显示,查看的提交数很大时非常有用。
另外还有 short,full 和 fuller 可以用,展示的信息或多或少有些不同
'git log --pretty=format:"%h - %an, %ar : %s"'
format,可以定制要显示的记录格式
'git log --pretty=format:"%h %s" --graph'
当 oneline 或 format 与另一个 log 选项 --graph 结合使用时尤其有用。
这个选项添加了一些ASCII字符串来形象地展示你的分支、合并历史
format还有很多用法,有需要的话可以去详细了解一下
'git log --all --decorate --graph'
查看合并详情
更多相关资料:
https://git-scm.com/book/zh/v2