本文目录一览:
git仓库的创建及基本操作
一、安装git
二、设置
由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,在命令行输入下列的命令:git config -- global user.name "" ,git config -- global user.eamil ""-git怎么新文件
三、工作原理:
1.git的工作流程
2、git简化原理
四、基本用法
1、创建版本库
版本库就是我们所说的“仓库”,英文名repository,你可以理解为一个目录,这个目录里面的所有文件都可以被Git管理,文件的修改,删除Git都能跟踪,
以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
eg:
命令解析:
cd:进入某个目录
mkdir:创建一个文件
pwd:显示当前的目录路径
2、添加文件到版本库
添加文件到版本库,首先需将这个目录变为git可以管理的仓库,命令如下:
git init
git add 001.txt
git commit 001.txt "001txt文件提交"
命令解析:
git add:将文件提交到暂存区
git commit -m:将暂存区文件提交到仓库(单引号内为注释)
3、检查是否有未提交的文件
通过下面的命令,检查该版本库是否有文件未提交:git status 检查当前文件状态
4、检查文件是否被修改 git diff:查看文件修改的内容
5、查看历史变更记录
git log:获得历史修改记录
git log --pretty=oneline:使记录只显示主要的内容,一行显示
6、版本回退
cat:查看文件内容
git reset --hard HEAD^:回退到上一个版本
git reflog:获取历史版本号
git reset --hard 版本号:回退到该版本号对应的版本
五、将本地文件推送到github仓库
PS补充下:关于Git和github关联
1、拥有github账号
由于本地仓库和远程的github仓库需要关联,首先需要登录github,注册一个账号,然后建立一个仓库。
注册链接: 成功注册后,登录github,首页如下:
2、创建SSH Key
Git和github之间是通过SSH加密的,因此需要执行下面的操作:
①、在本地主目录查找,是否有.ssh目录,如果有,打开该目录,一般会有这两个文件:id_rsa和id_rsa.pub,如果有的话,直接跳过,如果没有的话,打开命令行,输入如下命令:
ssh-keygen -t rsa –C “youselfemail@email.com”(你自己的邮箱地址,推荐和注册github的邮箱保持一致)
ps:Mac系统下查看和生成SSH Key
一、查看本地是否存在SSH-Key: ls -al ~/.ssh
输出的是如下内容: 证明本地已经存在SSH Key 文件,请执行第四步。
id_rsa id_rsa.pub
二、如果没有,生成新的SSH Key
ssh-keygen -t rsa -C"you_email" (your_email:这里填写你在GitLab或者GitHub注册时的邮箱。)
三、生成并添加SSH Key
ssh-add ~/.ssh/id_rsa
四、查看SSH Key
cat /Users/xxx/.ssh/id_rsa.pub
xxx是你的电脑用户名,例如:howieMacBook-Pro:~ howie$中的howie关键字。
复制生成好的SSH Key 添加到 GitLab 或者GitHub中的SSH Key中即可。
②、登录github,右上角:设置→settings-SSH and GPR keys→New SSH key,然后输入你的标题,输入上面的公钥,然后点击保存。
3、创建仓库
点击右上角,添加→New repository,按照下图所示创建仓库:
然后进入创建的仓库,点击Clone or download,找到你的仓库地址:
然后通过命令:git remote add origin 用户名/仓库名.git,将本地仓库和github仓库连接就好了。
Git创建本地版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。-git怎么新文件
1、选择一个合适的地方,创建一个空目录
2、通过git init命令把这个目录变成Git可以管理的仓库,当前目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本库的。这个目录默认是隐藏的,不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。可以用ls -ah查看。-git怎么新文件
3、创建一个文件,文件一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
创建一个readme.txt文件,内容为
Git is a version control system.
Git is free software.
4、把一个文件放到Git仓库,只需要两步。
第一步,用命令git add告诉Git,把文件添加到仓库:
第二步,用命令git commit告诉Git,把文件提交到仓库:
解释git commit命令:
-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
git commit命令执行成功后会告诉你,
1 file changed:1个文件被改动(我们新添加的readme.txt文件);
2 insertions:插入了两行内容(readme.txt有两行内容)。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
最后,在这说明一下,本文的Git知识总结是根据廖雪峰老师官网的Git学习到的,如果有不懂的,也可直接查看廖雪峰老师官网。
看到这里的小伙伴如果觉得我的总结有解决你的困惑的话,帮忙点个赞,让我知道我的文章是有帮助到你的哟,感谢。
Git工作流程和常用命令分享
git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。林纳斯·托瓦兹在编写第一个版本时就使用了“git”这个名称, 他将工具描述为“愚蠢的内容跟踪器”。-git怎么新文件
[图片上传失败...(image-c23291-1619063471664)]
四个专有名词:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
打开本地生成的.git隐藏文件
创建新项目gittest
创建新文件test.txt
git add file
git status显示有变更的文件
git restore file 撤回文件修改内容
git commit –m “注释”
修改内容- 执行git diff工作区和本地仓库的差异
git log显示当前分支的版本历史
git reset --hard HEAD^ 当前版本回退到上一个版本
git reset --hard HEAD^ ^ 当前版本回退到上上一个版本
git reset --hard HEAD~100 回退到前100个版本
恢复已经删除的版本
git reflog 展示所有的提交记录
git reset --hard 版本号 回退到指定版本
git push origin master 将本地master分支推送到远程master分支,相当于创建远程分支
git checkout -b dev = git branch dev + git checkout dev 创建并切换分支
git branch 不带参数,会列出所有本地的分支;带参数表示创建分支
git branch –d name 删除本地分支(-D表示强制删除)
git branch –r 不带参数,会列出所有远程的分支
git branch --set-upstream-to=origin/branch本地 本地和远程分支关联
git push origin –delete branch 删除远程分支
git merge release用于合并指定分支到当前分支上
注:Fast-forward表示的合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。在这种模式下,删除分支后,会丢掉分支日志信息。可以使用带参数 --no-ff来禁用”Fast forward”模式。-git怎么新文件
git merge --no-ff -m “注释”dev
git checkout release 切换release分支
vim test.txt 修改某条内容
git commit test.txt -m “release修改某条内容”
git checkout master 切换master分支
vim test.txt 修改某条同release内容
git commit test.txt -m “master修改某条内容”
git merge release 显示冲突
git status 显示冲突提示
Git用,=======,标记出不同分支的内容,其中release 是指release上修改的内容
vim test.txt 修改内容
git add test.txt
git commit -a -m “fix conflict”
当前分支有没有提交但也不合适现在就提交的内容,Git提供了暂储功能stash
git checkout release
vim test.txt 修改test.txt内容
git checkout develop 此时会提示Aborting
git status 查看当前状态
Git stash list 查看所有暂储列表
git stash apply恢复,恢复后stash内容并不删除,你需要使用命令git stash drop来删除;
另一种方式是使用git stash pop,恢复的同时把stash内容也删除了
创建Git Tag并推送远程服务器
git tag -a V1.0.0 –m“注释” //创建TAG
git push origin V1.0.0 //推送到远程服务器
git push origin --tag //提交所有tag至服务器
git tag -d V1.0.0 //删除本地标签
git push origin --delete tag tagname //删除远程标签
HEAD,它始终指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变
add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理。
git add .添加当前目录的所有文件到暂存区
git add 添加指定目录到暂存区,包括子目录
git add 添加指定文件到暂存区
commit相关命令也很简单,主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点。
git commit -m 提交暂存区到本地仓库,message代表说明信息
git commit --amend -m 使用一次新的commit,替代上一次提交
上传本地仓库分支到远程仓库分支,实现同步。
git push 上传本地指定分支到远程仓库
git push --force强行推送当前分支到远程仓库,即使有冲突
git push --all推送所有分支到远程仓库
关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作。
git branch列出所有本地分支
git branch -r列出所有远程分支
git branch -a列出所有本地分支和远程分支
git branch 新建一个分支,但依然停留在当前分支
git checkout -b 新建一个分支,并切换到该分支
git checkout 切换到指定分支,并更新工作区
git branch -d 删除分支
git push origin --delete 删除远程分支
关于分支的操作虽然比较多,但都比较简单好记
merge命令把不同的分支合并起来。在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过R3,R4,R5的commit记录,最后开发完成需要合入master中,这便用到了merge。-git怎么新文件
git merge 合并指定分支到当前分支
注:如果在merge之后,出现conflict,主要是因为两个用户修改了同一文件的同一块区域。需要针对冲突情况,手动解除冲突。
rebase又称为衍合,是合并的另外一种选择。
在开始阶段,我们处于new分支上,执行git rebase dev,那么new分支上新的commit都在dev分支上重演一遍,最后checkout切换回到new分支。这一点与merge是一样的,合并前后所处的分支并没有改变。-git怎么新文件
git rebase dev,通俗的解释就是new分支想站在dev的肩膀上继续下去。
rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。
rebase也需要手动解决冲突。
1.如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase
2.如果你想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge
reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。
git reset —soft 只改变提交点,暂存区和工作目录的内容都不改变
git reset —mixed 改变提交点,同时改变暂存区的内容
git reset —hard 暂存区、工作区的内容都会被修改到与提交点完全一致的状态
git revert用一个新提交来消除一个历史提交所做的任何修改。
在回滚这一操作上看,效果差不多。git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
在 Git工作区的根目录创建一个特殊的.gitignore文件。
在.gitignore文件中,添加需要忽略的文件。
git rm -r --cached . //将仓库中的index递归删除
git add . //重新添加仓库索引
git commit -m “update git.ignore” //提交
git branch --set-upstream-to=origin/branch branch //重现将本地仓库和远程仓库关联
最后,如果此篇博文对你有所帮助,别忘了点个赞哟~
git怎么上传文件夹
1、首先在git空间上面创建一个新项目,项目名称跟需要上传的项目名称一致。
2、建完成后,会生成一个git上面的链接,该链接即为需要下载和上传项目的链接。
3、用intellij idea创建一个新项目。
4、复制用intellij idea新建项目的文件到该目录下面,在该目录下面,右键选择git GUI Here,然后依次执行Stage Change 、Commi、 Push,当然message是必须填写的。-git怎么新文件
5、然后刷新git空间,就可以看到上传的文件了。
如何通过git命令更新本地的文件
1、创建一个项目
加入我打算把我的项目放在D盘下的gitserver下的mysite中,那么使用git,进入D盘下的gitserver创建文件夹
创建完成后。从现在开始,这个git版本库就可以用来记录和跟踪该项目的代码了(其实git init会创建一个.git目录。这个目录用来存放版本库的全部元数据。mysite目录作为工作目录树,存放从版本库中检出的代码)-git怎么新文件
2、加入一个文件
假设我写了一个index.html的文件:
[html] view plaincopyprint?
html
body
h1hello world/h1
/body
/html
把这个文件放到mysite中,要想让git跟中这个文件,须先让它知道这个文件要分两步走:首先使用git add命令把该文件添加到版本库的索引;然后使用git commit命令提交
git commit命令创建一个提交记录。提交记录是存储在版本中的历史记录,每提交一次创建一个记录,并标记处代码的演进。
前面命令中参数-m的作用是,告诉git本次提交的提交留言。
git怎么添加文件夹
在本地新建接受远程目录文件夹 bbb
初始化文件夹bbb的git设置,分别设置用户名和邮箱
git config --global user.name "wmsj100"
git config --global user.email "wmsj100@hotmail.com"
克隆github项目组中的文件此时要注意该文件的路径一定要是根目录,不能是子目录,否则就会出现文件路径不存在的警告
点击进去后会看到.git版本库文件,readme.md项目说明文件,homework项目文件夹
进入homework文件夹直接创建自己的工作目录wang_hao
在文件夹里面创建一个readme.md的项目说明文件,当然了readme的后缀可以是任何文本格式,.txt/.html/.htm/.css/.js/……
用文本编辑器打开readme文件,输入说明文字,对了,最好不要用记事本打开,好像是微软的记事本会在文件头部添加一个代码,有时候可能会出现乱码,推荐使用notepad++、sublime text……
此时查看git库的状态git status然后添加wang_hao文件夹到git库
提交到本地git库
推送到项目组文件夹,首先查看提交项目的名称,默认为origin
推送到远程gitgit push origin
虽然有警告提示,但是看到底部的文件数量和大小信息就知道是提交成功了。可以去github看看刚刚这次的提交