Git 的使用

作者: 尤樊容 | 来源:发表于2019-04-26 11:34 被阅读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.png

    git在本地是这样一个结构,图中标记的非常清晰,然后可以通过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

    相关文章

      网友评论

        本文标题:Git 的使用

        本文链接:https://www.haomeiwen.com/subject/kqqiwqtx.html