关于git使用的信息
Git基本操作
安装完 Git 软件后,需要我们做一下全局的配置工作,如:用户名、邮箱等。
命令:git config
设置用户名命令:
设置邮箱命令:
其中, --global 指定为全局配置,不指定该参数,则为当前所在仓库配置。
查看配置:
在本地创建版本库,需要使用 git init 命令。
首先,我们需要新建一个存放版本库的文件夹,然后进入到该目录所在路径,执行如下命令,格式为:
最后查看文件夹,可以看到包含有 .git 子文件夹,说明创建版本库成功了。
也可以在执行 git init 命令时指定一个文件夹作为版本库。格式为:
克隆版本库是指从现有 Git 版本库中拷贝项目。
克隆版本库使用如下命令,格式为:
如果我们需要克隆到指定的目录,可以使用以下命令格式:
如:克隆远程仓库
添加一个或多个文件到暂存区:
添加指定目录到暂存区,包括子目录:
添加当前目录下的所有文件到暂存区:
查看在我们上次提交之后是否有对文件进行再次修改。 格式为:
-s参数可以帮助我们获得比较简短的显示结果。
如:我们在一个版本库中所在目录中增加一个 Unit1.pas 文件,然后执行如下命令:
显示暂存区和工作区的差异:
显示暂存区和上一次提交(commit)的差异:
显示两次提交之间的差异:
将暂存区内容添加到本地仓库中。
提交暂存区到本地版本库中:
message 可以用于描述提交的信息。
提交暂存区的指定文件到版本库区:
修改后直接提交:
-a参数设置修改文件后不需要执行 git add 命令,直接来提交。
如:我们在上面的命令基础上进行提交
接下来,我们对 Unit1.pas 文件进行修改,然后进行文件比较:
git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset 命令语法格式如下:
可以使用 数字表示
git rm 命令用于删除文件。
如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。所以,在 git 环境下一定要使用 git 的删除文件操作。
git rm 删除文件有以下几种形式:
将文件从暂存区和工作区中删除:
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f 。
如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:
可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:
git mv 命令用于移动或重命名一个文件、目录或软连接。
如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
git 日常用法
git pull远程主机名远程分支名:本地分支名
git push远程主机名本地分支名:远程分支名 , 和git pull 都是 src:dest
git fetch远程主机名分支名其实就是拉去远程分支到本地版本库,然后再使用 git merge
git merge 合并分支,将 合并到当前所在的分支, 比如 git merge master ,将本地master与自己的分支合并,比如 git merge origin/branch ,就是将远程的 origin/branch 与本地的分支合并 , 比如不自动commit,可以 git merge--no-commit 。 其实git merge 可以一次合并多个分支,比如 git merge origin/ 其实就是管你远程和本地了全部合到我的分支上。
git diff 在两个分支之间比较
git diff--cached 比较 git add. 与 工作区之间的比较 , 也就是本地暂存区与工作区之间的比较
git reset--mixed 将暂存区的分支直接回到到工作区, 也就是比如 git add. 你想回退到本地,直接 `git resrt --mixed
git reset--mixed HEAD~1 回退一个版本,比如你本地commit/远程已经push了,那么你本地和远程是一样的,如果你想回退一个版本,此时需要reset操作,主要是解决回退的操作,上面就是commit一次后需要回退一个版本,所以是 HEAD 1 , 比如commit了两次就是 HEAD~2 , 此时有4种选项,一般分为 --hard 和 --mixed , --soft , --hard 硬reset,回退回来你的这次修改全部没有了,也就是直接回到了上一个版本,而 --mixed 回退到你没有 git add. 操作的时候, --soft 是回退到你 git add. 操作完后的时候。 看需求吧。一般只用 --hard 和 --mixed .
git commit--amend 主要是处理 你 git commit-m'' 想要修改 commit的desc/comment了。
git rm-r--cached. 比如修改了 gitignore ,但是其实你的版本库/暂存区是没有 ignore的,所以需要直接删除 暂存区的缓存。
git rm file 也就是删除本地开发的一个文件,硬删除,直接删没了,回退也需要硬回退。
git checkout. 清空本地所有修改的代码
git checkout-b 将本地的这个分支,checkout 出一个新的分支,名字为 git checkout-b origin/ ,将远程的 分支上 checkout一个新的本地分支名字为`
有些场景可能需要打tag,所以一般是 git pull ,拉去远程的所有代码(记得切换到master上),然后 git tag 查看 tag 历史 ,创建一个新的tag ,比如 git tag v1.1.0 ,然后直接推送到远程 git push origin v1.1.0 就好了(一般是别人给你合master了,上线可能需要打新的tag)
文件权限 发生变更需要配置:git diff old mode 100644 new mode 100755 的问题 :需要设置 git config --add core.filemode false
git log-p README.md 查看文件的变更详细 历史 , git log 查看文件的变更 历史 ,另外有可能查看某一行的变更,这个是指你没有ide的情况下,所以需要指定
然后
git shortlog-sn 查看提交者
git submodel add remote_addr local_dir 子模块
文档:Git-工具-子模块
1、在父项目新建子模块
2、提交子模块
问题就是,提交流程过于复杂!!
git安装使用
1 git初始化 提交
安装git.exe
git bash 进入linux操作界面
创建git仓库目录 :进入目录路径下+git init 初始化
git add 文件 //加入缓存
git commit -m “标注”//提交
git status 查看下当前git目录下文件状态,是否已修改未add/commit
git log
git reset commit id --hard 版本回退
git reflog 查看被删除的文件
2 分支
git log: HEAD指向为当前分支是哪个
git branch 查看当前分支
git checkout * 切换分支为
git branch * 创建分支
git branch -d 删除其他分支 -D强制删除不检验
git merge 其他分支 合并其他分支提交的文件,使本分支文件更多了
3分支规范
master分支 :生产分支
develop分支 :开发分支
4 远程仓库 码云
git remote add orign (自定义命名,默认origin) 远程仓库地址(url)
git remote 查看当前的远程仓库
git push + origin master 本地仓库提交到远程仓库
git push -f 强制覆盖
git push --set-upstream origin master:master
本地分支和远端分支建立连接关系
git branch -vv 查看本地和远程分支的对应
git clone ssh远程仓库地址
git pull(抓取+合并到本地master) =git fetch + git merge orign/master
git的基本使用
git 采用的是分布式仓库,本地和远程仓库都是一个包含完整记录的仓库,如果某一处被格式化了,还以从另一个仓库获取,并不会有大影响(只要之前进行了同步仓库)。git 可以在断网的情况下,提交到本地仓库,之后联网再推到远程仓库。每次提交或者保存,git都会记录下所有文件状态,若未改变的文件,git不会再次存储,只会链接到之前已经存储的文件。
git文件一共有四种状态:
以下为git中存在的,并在跟踪的
创建本地.gitignore
创建一个global .gitignore
指定仓库排除
参考 Ignoring files
这里遇到一个问题:当我不修改系统默认的提交信息时(或者只是换行不输入任何信息),然后关掉编辑器会出现提交不成功,并会提示
Aborting commit due to empty commit message.
解决方法 :必须输入新的提交信息,即在原来的基础上,至少要加入新的行数据。
git rm \*~ 删除所有以~这个结尾的文件
限定输出
更多限定
Table 3. Options to limit the output of git log
参考至: Git Basics - Undoing Things
`eg
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend`
展示仓库名
fetch、pull、push
(==注==:origin 是用git clone到本地之后,自动命名,如果在你push之前,有人先push了,那么push会失败,必须fetch下来合并,并且运行起来,才能在push)
指定一个提交(commit)点作为tag,并不保存额外的信息、
包含tagger 名字、邮箱、日期、tagging msg等信息
-m 指定标记消息,若没有,系统会自动采用默认的编辑器
给之前提交(commit)加上tag
分享tags
默认情况下,git push 并不会将本地的tag,push到远程服务器上,用以下两个命令行推到远程仓库上
检出Tags
必须新建一个分支,然后将要检出的tags,指定到这新分支上
为了是命令更简单、更容易明白和操作,可以给命令添加别名如下:
运行的时候直接打 git ci可以
可视化命令 gitk
5分钟知道git如何使用?(git入门常用命令)
这里引用一下“菜鸟教程”对git的描述
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull
关于git下载安装这里就不细说了,毕竟我们只有5分钟的时间,可以去git官网下载对应的版本网上查查安装教程。
首先建立一个本地仓库(repository)。你可以使用一个已经存在的目录作为Git仓库或创建一个空目录。我这里就创建一个空目录itep为例:
初始化本地仓库
我们有一个仓库,但什么也没有,先在工作区创建一个文件‘demo.html’,可以使用add命令添加到暂存区。
我们在工作区创建了好几个新的文件,html,js,和css。接下来我们都可以添加到暂存区
当我们修改了很多文件,而不想每一个都add,想commit自动来提交本地修改,我们可以使用-a标识。 注意是修改,而不是新增,新增的文件我们还是要先add,之后再修改这些文件的话,就可以直接使用-a命令了。
现在我们已经添加了这些文件,我们希望它们能够真正被保存在Git仓库。
为此,我们将它们提交到本地仓库
接下来我们发布版本,提交到远程仓库。注意这里远程仓库的地址只是举例
5分钟已经到了吧...
上面从新建一个页面,提交到远程仓库的流程已经说完了,接下来我们说点别的。。
删除文件
删除工作区和暂存区文件git rm ,删除文件有以下几种形式
对,就是这么简单,你的工作区和暂存区demo.js这个文件已经没有了
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。
强行从暂存区和工作区中删除修改后的 demo.html 文件:
如果想把文件从暂存区中删除,但仍然希望保留在当前工作目录中的话这样操作
【学了就忘】Git操作 — 14.Git基本操作(一)
要对现有的某个项目开始使用Git管理,只需到此项目所在的根目录,执行 git init 命令即可。
准备一个新的Git本地版本库:
说明:初始化Git仓库后,在当前目录下会出现一个名为 .git 的目录,所有Git需要的数据和资源都存放在这个目录中。
不过目前,仅仅是按照既有的结构框架,初始化好了Git仓库中所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。
使用 git status 命令进行查看。
进入本地版本库查看工作区、暂存区中文件的状态。
1)创建文件后查看工作区、暂存区中文件的状态
我们在仓库目录中创建一个 readme.txt 文件后,在执行 git status 命令。
说明:
2)将工作区的文件添加到暂存区
执行 git add 命令,将 readme.txt 文件添加到暂存区。
3)再次查看工作区、暂存区状态
执行 git status 命令查看工作区、暂存区状态。
说明:
总结:
只要在 "Changes to be committed" 这行下面显示的文件,就说明是已暂存状态。
如果此时提交,那么该文件此时此刻的版本,将被留存在历史记录中。
在 git add 命令后面可以指明要跟踪的文件或目录路径。
如果是目录的话,就说明要递归跟踪该目录下的所有文件。(其实 git add 命令的潜台词就是把目标文件快照放入暂存区域,同时未曾跟踪过的文件标记为已跟踪。)
4)将文件从暂存区撤回到工作区
执行 git rm --cached 命令,将 readme.txt 文件从暂存区撤回到工作区。
并执行 git status 命令查看工作区、暂存区状态。
可以看到结果, readme.txt 文件又成为了一个未被Git追踪的文件。