• Git 入门和常用命令详解


    git 使用使用教程   git 使用简易指南  常用 Git 命令清单  

    下载   https://git-scm.com/downloads

    工作流

    本地仓库由三部分组成。

    工作区:保存实际的文件(本地实际的文件目录)

    缓存区(Stage / Index):临时保存文件改动

    HEAD:指向最近一次提交的后果

    下图说明了 Git 的工作流程

    图片来源:http://www.runoob.com

    Git 常用命令

    git init

    创建新仓库。在当前目录中创建新的 Git 仓库,生成.git文件夹,其中保存了所有 Git 需要的数据和资源。

    (或者直接打开 Git Bash 命令行,进入到当前文件夹然后执行 git int )

    注意:如果在系统中不显示隐藏文件,那么 .git 文件夹是看不到的。

    如何显示隐藏文件夹:http://jingyan.baidu.com/article/f79b7cb3a61d699144023e26.html

     git clone 

    从现有 Git 仓库中拷贝项目(类似 svn checkout

    git clone https://github.com/wx1993/Node-React-MongoDB-TodoList.git

    结果如下:

    如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字

    git clone https://github.com/wx1993/Node-React-MongoDB-TodoList.git newDemo

    git add

    添加两个文件

    1 touch test 
    2 touch app

    几种情况

    • git add .  监控工作区的状态树,把工作时的所有变化提交到暂存区,包括文件内容修改 (modified) 以及新文件 (new),但不包括被删除的文件。
    • git add -u  仅监控 已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写
    • git add -A 是上面两个功能的合集(git add --all 的缩写)

    git 项目的文件状态

    • A: 本地新增的文件(服务器上没有)
    • C: 文件的一个新拷贝
    • D: 本地删除的文件(服务器上还在)
    • M: 文件的内容或者 mode 被修改了
    • R: 文件名被修改了
    • T: 文件的类型被修改了
    • U: 文件没有被合并(你需要完成合并才能进行提交)
    • X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)

    git status

    查看项目的当前状态

    git status -s

    以简短的结果形式输出。如果没加该参数会详细输出内容

     

    使用 git add 命令来添加文件,再次查看项目状态

     

    修改 test.txt 文件,并保存

    "AM" 状态的意思是,这个文件在添加到缓存之后又有改动。改动后再次执行 git add 命令将其添加到缓存中:

     git diff

     查看执行 git status 的结果的详细信息

    • 尚未缓存的改动:git diff
    • 查看已缓存的改动: git diff --cached
    • 查看已缓存的与未缓存的所有改动:git diff HEAD
    • 显示摘要而非整个 diff:git diff --stat

    注意:

    git status 显示你上次提交更新后的更改或者写入缓存的改动,

    git diff 逐行显示每一次改动的具体信息。

    配置用户名和邮箱地址

    Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。

    1 $ git config --global user.name 'wangxi'
    2 $ git config --global user.email 18817801185@163.com

    git commit 

    使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。


    git commit -a

    跳过git add 提交缓存操作,直接提交到仓库

    git reset HEAD

    取消所有已缓存的内容(取消 git add)

    git reset HEAD -- 文件名

    取消指定的已缓存的内容

     

    git rm

    git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

    默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

    如果你要在工作目录中留着该文件,可以使用 git rm --cached

    git mv

    git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。

    git push

     将本地工作区的文件变动提交到仓库中,比如提交到 github 上(需要输入github的用户名和密码)

    push 之后在 github 项目中查看文件目录,发现 test.css 已经被删除了。

    git log

    查看提交历史

    git log --oneline

    查看历史记录的简洁版本

    git log --oneline --graph

    查看历史中什么出现分支、合并分支的情况

    git log --oneline --reverse

    逆向显示所以操作日志( --reverse 和 --graph 不能同时使用)

     

    git log --author=wangxi --oneline -5

    显示指定用户提交的日志,并设置显示的结果条数为五条 

    git log --oneline --since={2.hourse.ago} --after={2017-03-28} --no-merges

    查看指定日期的日志信息。

    --since / --before / --until / --after

    --no-merges  隐藏分支合并提交的日志

    git tag

    给项目版本添加标签

    在日志中查看标签

    git tag -d v1.0

    删除指定标签

    git show v1.0

    查看指定版本所修改的内容

    GitHub 远程仓库

    在github中新建仓库后会给出相关的仓库操作命令,如下:

    添加 github 作为远程仓库

    git remote add [shortname] [url]

    查看已经添加的远程仓库

    注意:本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要配置验证信息,生成SSH Key,如何配置 SSH Key —> http://www.cnblogs.com/wx1993/p/6646973.html

    推送到远程仓库

    git push [alias] [branch]

    在 github 中查看操作结果

    提取远程仓库

    git fetch origin

    在 github 上手动修改文件,比如 README.md

    然后在本地使用 fetch 拉取数据,如下:

    最后一行信息说明 master 分支已经被更新,所以可以使用 merge 命令将更新同步到本地

    查看 fetch 之后的本地的 README.md

    删除远程仓库

    git remote rm [别名]

    创建远程仓库(本地创建仓库并提交到 github 上)

    在 github 上创建仓库后可以到上方的页面,提供了三种创建仓库的方式:

    1. 本地不存在项目:通过命令在本地创建项目并提交到 github 上

    2. 本地已存在项目:通过命令直接将项目提交到 github 上

    3. 直接导入本地项目。

    参考:http://www.bootcss.com/p/git-guide/

         http://www.runoob.com/git/git-tutorial.html

         

  • 相关阅读:
    [SQL server] IF ELSE 和 CASE WHEN 的用法
    SQL server游标基本结构
    SQLserver查看某个视图的创建语句
    SqlServer和Oracle修改表结构语句
    IE浏览器部分js代码不生效的问题
    SQL server将查询到的多行结果,拼接成字符串(列转行)
    SQL server将某个字符串将按指定字符分解成子字符串(行转列)
    安装weblogic时,运行configure.cmd报错、闪退、无法创建域
    黑苹果相关工具
    黑苹果安装问题集
  • 原文地址:https://www.cnblogs.com/wx1993/p/6230435.html
Copyright © 2020-2023  润新知