标签:git add 校验 rename out it管理 http sage 克隆 推送
创建新的仓库
首先需要创建一个工作目录test
,然后在终端切换至该目录并输入:
$ git init
克隆现有仓库
如果想获得一份test
仓库的拷贝,可以在终端输入:
$ git clone https://github.com/xGonZh10n/test.git
或者
$ git clone git@github.com:xGonZh10n/test.git
工作目录下的文件主要有以下两种状态:
初次创建或克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。编辑某些文件后,Git会将它们标记为已修改文件。我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存的修改,如此反复。所以,使用Git时文件的生命周期如下:
$ git status
如果不需要查看详细状态,可在命令后面加上 -s
参数。
$ git add <file>
该命令使用文件或目录路径作为参数,如果参数是目录路径,则递归跟踪该目录下所有文件;同时,每一次修改文件都需要运行该命令把文件最新版本重新暂存。
如果有文件无需纳入Git管理,我们可以创建.gitignore文件,并在其中列出需要忽略的文件模式。该文件的格式规范如下:
#
开头的行都会被Git忽略;/
)开头防止递归;/
)结尾指定目录;!
)取反。GitHub上有一个十分详细的针对数十种项目及语言的.gitignore文件列表,可以作为参考。
如果你想知道当前做的哪些更新还没有暂存,哪些更新已经暂存起来准备提交,可以使用git diff
命令。尽管git status
命令可以简单的列出修改过的文件名,但是git diff
命令将会更详细的显示文件具体哪些行发生了改变。
查看尚未暂存的文件更新了哪些部分:
$ git diff
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化。
查看已暂存的将要添加到下次提交里的内容:
$ git diff --cached
每次提交前,先用git status
看一下文件是不是都已经暂存起来,然后再进行提交:
$ git commit -m "<message>"
从暂存区域移除,并连带从工作目录中删除指定的文件,可以使用以下命令:
$ git rm <file>
如果删除之前修改过并且已经放到暂存区域,则必须要用强制删除选项-f
。
如果想把文件从Git仓库删除,但仍希望保留在当前工作目录中,则需要使用--cached
选项。
$ git mv <from> <to>
$ git log
默认不用任何参数,该命令会按提交时间列出所有的更新,最近的更新排在最上面。
如果需要显示每次提交的内容差异,可以使用选项-p
。你也可以在选项后面加上-2
来仅显示最近两次提交。
如果需要查看每次提交的简略统计信息,可以使用选项--stat
。在每次提交下面列出所有被修改过的文件、有多少文件被修改以及被修改过的文件的哪些行被添加或移除。
如果需要使用其它格式展示提交历史,可以使用选项--pretty
。
如果提交完成后发现漏掉几个文件没有添加,或者提交信息写错。可以运行以下命令尝试重新提交:
$ git commit --amend
该命令会将暂存区中的文件提交。如果自上次提交以来还未做任何修改,那么快照会保持不变,修改的只是提交信息。而且最终只会有一个提交,第二次提交将代替第一次提交的结果。
$ git reset HEAD <file>
$ git checkout -- <file>
$ git reset --hard <commit_id>
想要切换到的commit_id可通过git reflog
命令查看,此外,上一个版本的commit_id也可使用HEAD^表示。
$ git remote <-v>
该命令会列出你指定的每一个远程服务器的简写。如果加上选项-v
,则会显示需要读写远程仓库使用的Git保存的简写与其对应的URL。
$ git remote add <remote-name> <url>
该命令添加一个新的远程Git仓库,同时指定一个名字简写。
$ git fetch <remote-name>
该命令会访问远程仓库,并从中拉取你还没有的数据到本地仓库,但它并不会自动合并或修改你当前的工作,必须手动将其合并。如果想要自动抓取数据然后合并到当前分支,你可以使用git pull
命令。
$ git push <remote-name> <branch-name>
$ git remote show <remote-name>
$ git remote rename <from> <to>
$ git remote rm <remote-name>
$ git tag
$ git tag -a <tag-name> -m "<message>"
其中,选项-m
指定了一条将会存储在标签中的信息。通过使用git show
命令,可以看到标签信息与对应的提交信息。
$ git tag <tag-name>
通过使用git show
命令,不会看到额外的标签信息,只会显示出提交信息。
$ git show <tag-name>
在打标签命令后面指定提交的校验和或部分校验和。
默认情况下,git push
命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。
推送单个标签
$ git push origin <tag-name>
推送多个标签
$ git push origin --tags
删除本地仓库上的标签,可以使用命令:
$ git tag -d <tag-name>
但是,上述命令并不会从任何远程仓库中移除这个标签,必须使用以下命令来更新远程仓库:
$ git push origin :refs/tags/<tag-name>
可以通过git config
为每个命令设置一个别名。例如:
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
为了解决取消暂存文件命令的易用性问题,可以添加自己的取消暂存别名:
$ git config --global alias.unstage 'reset HEAD'
这会使以下两个命令等价:
$ git unstage <file>
$ git reset HEAD <file>
标签:git add 校验 rename out it管理 http sage 克隆 推送
原文地址:https://www.cnblogs.com/xGonZh10n/p/12301715.html