标签:out github 日常 授权 公钥 ssh免登陆 global 测试 版本控制系统
参考资料:
https://zhuanlan.zhihu.com/p/104365543
git的安装,点击下一步即可。
git能够做的事情:1. 版本管理。2.协同开发
git config --global user.name 提交人姓名
git config --global user.email 提交人邮箱
git config --list
注意:
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需要执行一次。
- 配置信息文件
.gitconfig
, 可以在c盘用户处找到 ,可以在该文件中修改信息。
1、在工作目录中添加、修改文件(被git管理的)
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
在项目的文件夹中,右键
git init
初始化git仓库
仓库初始化的地址在当前文件夹目录,默认状态是隐藏的
git status 文件
查看文件状态
git add 文件/文件夹 or git add .
追踪文件
添加文件到暂存区中
git commit -m 提交信息
向仓库中提交代码
将暂存区中的文件提交到本地仓库中 ,提交后,则该文件不存在于暂存区。 原则:提交一个文本
git checkout 文件
用暂存区中的文件覆盖工作目录中的文件
git diff 文件
查看暂存区与工作目录的不同(更改情况)
git ls-files
查看暂存区中的文件
git rm --cached 文件
将文件从暂存区中删除,该文件,仍然存在与工作目录中
git reset --hard commitID
将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录
git reflog
: 记录每一次提交仓库命令,这里可以找到版本号commitID
- 穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。- 要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
日常使用的命令
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
分支之间独立进行,互不影响。就像平行宇宙。
主分支(main):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
开发分支(develop): 作为开发的分支,基于main分支创建。主分支很重要,一般不用主分支开发,测试。开发分支可以理解为主分支的副本,开发完副本再拷贝回主分支之中。
功能分支 (feature) : 作为开发具体功能的分支,基于开发分支创建。具体功能在功能分支上写,功能累计到一定程度,将其拷贝到开发分支之中,再删掉功能分支即可
git branch
查看分支
git branch 分支名称
创建分支
git checkout 分支名称
切换分支
git merge 来源分支
合并分支
开发分支是被合并的,要在主分支里合并开发分支
合并后, 开发分支仍然存在
git branch -d 分支名称
删除分支(分支被合并后才允许删除)(-D 强制删除)当前分支不能停留在要删除的分支上
git branch -a
查看远程分支
将本地分支提交到远程仓库之前,需要在远程仓库建立新的分支。
git push -u origin 分支
在默认情况下,git push
时一般会上传到origin
下的mian
分支上,然而当repository
和branch
过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标。push时需要指明分支
在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。
只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。
GitHub,Gitee可以作为远程仓库
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
解决方法:把远程仓库pull到本地,再push
授权问题,并不需要每次都登陆
SSH keys (生成秘钥) : ssh-keygen
秘钥存储目录:C:\Users\用户\.ssh
公钥名称:id_rsa.pub
私钥名称:id_rsa
第一次使用需要设置用户名和邮箱
git config user.name "用户名"
git config user.email "邮箱"
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:.gitignore
node_modules
test
test.html
test.md
将工作目录中的文件全部添加到暂存区:git add .
使用 rm 命令清除一下相关的缓存内容,于是按照网上的步骤进行操作:
git rm -r --cached .
git add .
git commit -m "update .gitignore"
注:idea中使用插件 .gitignore 更方便
github速度慢怎么办?换URL
我们可以使用github的镜像网站,
github.com.cnpmjs.org
github.com替换为上述URL即可,然后去clone,速度飞快!
打开hosts文件
C:\Windows\System32\drivers\etc
浏览器访问https://www.ipaddress.com/,分别输入
github.com
和github.global.ssl.fastly.net
以获取对应的ip。
?
更改hosts文件:在后面追加
(可以修改hosts文件的权限为可写)
140.82.112.3 github.com
199.232.69.194 github.global.ssl.fastly.net
刷新DNS缓存(Mac 系统)
? cmd : ipconfig /flushdns
这样,git clone 的速度将提高10倍
git add .
查看所在目录所有文件 ls
配置完成公钥之后就可以了
git rm --cached file.txt
所谓暂存区实质是.git目录下的index文件,只要将此文件删除,那么就可以认为暂存区被清空。
rm .git/index
git commit --amend
进入vim编辑状态
i
进入编辑模式
Esc
命令模式
:
wq
保存退出
场景:你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit.
git revert 再按照上一条的问题操作就可以了
接下来可以使用git push 新的"反转"commit来抵消错误提交的commit。这是Git最安全,最基本的撤销场景,不会改变历史。
将远程项目文件夹里面的内容拷贝进去idea新建的项目,覆盖掉即可
拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称
远程仓库发送变动,则不能直接push
,需要先pull
往小了说,比如你现在在敲乐优商城,刚结束day11的代码。你想给当前代码留个“快照”,以后可以恢复。
往大了说,公司项目开发会留存版本v1.0 v2.0,也可以用标签。
标签和分支不是一个概念。比如你有master分支,今天可能只写了Hello.java,你为当前状态打了一个标签v1.0,提交了代码,也提交了标签。第二天你新增了一个World.java,提交到master分支。此时的master分支已经和昨天的master分支不一样了,但是你在另一台电脑上下载v1.0标签,它的代码还是只有Hello.java。
也就是说,分支是动态的、变化的,而标签把代码状态留在了那一刻。
创建标签的步骤:
git tag [tagName]
git push origin [tagName]
标签:out github 日常 授权 公钥 ssh免登陆 global 测试 版本控制系统
原文地址:https://www.cnblogs.com/qiyewuan/p/14442369.html