关于代码托管中心
任务:维护远程库
gitHub是git的一个托管中心(放代码的)
局域网环境下
自己搭建GitLab服务器
外网环境下
GitHub(外国)
码云(中国)
本地库和远程库的交互
团队内开发
跨团队开发
=============================更具体的内容==============================
git 的工作原理:
工作区:平时存放代码的地方
暂存区:
本地仓库:
远程仓库:远程仓库,可以有多个远程仓库
代码回滚:
是git reset,有2种:1种工作区不留更改。git reset --hard commitId
2种工作区留更改。git reset --sort commitId。
是根据本地仓库的快照,进行工作区的回滚。回滚完,进行代码提交到暂存区,到本地仓库。注意:这时候要强推到远程仓库。才能把上次远程仓库的提交历史冲掉。
值得注意:
pull 和 clone 是 拉取代码到你的工作区。就是你的目录文件中是最新代码
fetch 是 拉取代码到你的本地仓库,并没有到你的工作区
新建本地仓库的2种方式:
1 直接克隆远程仓库,clone的目录中就有.git文件夹。这个是直接关联远程仓库分支的
2 创建全新的仓库:文件夹下,命令行 git init 会生成一个.git文件夹。未关联远程仓库。
2这种情况,如何关联远程仓库和分支:
查看关联的远程仓库:
git remote -v
增加远程仓库:
git remote add origin 仓库地址
origin是你给远程仓库起的名字 如果只有1个就是origin
拉取远程分支:
// 注意一定要指定远程分支
// --allow-unrelated-histories防止报错,一般用git init方式,第一次pull都要加这个参数
git pull origin master --allow-unrelated-histories
拉取代码后,如果未做更改,不需要单独push到远程一次代码。
git add .
git commit -m ""
git push -u origin master
// 第一次push,指定远程分支。-u参数表示将当前本地分支与远程分支绑定。那么以后push就不用再加远程分支名了 直接默认就可以是 git push
跟对人,做对事。
一定要跟对人。不对就要自己努力调整方向
========================再细一点 ===========================
在git上文件上是有4种状态的
Untracked 未跟踪 ,在git目录中,不参与版本控制,是新文件。git add 后变为Staged
Unmodify 已经入库,未修改。如果修改后变成Modified ,如果被删除变成Untracked
Modified 已经修改 ,仅仅是修改,没有进行其他的操作。有2种可能,1种git add进入暂存 Staged状态,使用 git checkout则丢弃修改,返回Unmodify状态。git checkout 即从库中取出文件,覆盖当前修改
Staged 暂存状态。执行git commit同步到本地仓库中。这时候本地仓库的 文件和工作区的文件一致。
git reset HEAD filename 取消暂存。
git status 查看文件更改的状态
========================.gitignore 文件使用=========================
工程中常用的不需要提交的文件如:
*.lock
*.log
*.git
编辑器的相关配置文件
node_modals
学习,先吃亏,不学吃大亏。
=======================gittee的公钥私钥生成方式====================
本地绑定ssh公钥,每次push代码的时候就不用输入用户名和密码了
先将gittee 中设置中的 公钥删除(如果有的话)
进入.ssh目录下,删除2个文件(如果有的话),在这里命令行输入生成公钥的命令ssh-keygen
如果想加密 使用 ssh-keygen -t -rsa
生成的文件后缀是.pub是公钥文件。粘贴到gittee的公钥中
ssh是一种下载工程的方式,另一种是https。使用ssh下载,必须配置公钥,否则下载不下来
思考:
你从任何一个 git仓库平台下载 代码,克隆下来,再提交上去、这个仓库为了知道你是不是这个仓库的拥有者,都需要 你出示身份证明。这就是第一次提交代码时候。https下载方式中会有git仓库的账号密码弹框出现的原因。
那在ssh下载方式中不会弹框,让输入账号密码。就是因为配置了公钥。
假如你https下载的,但是你git仓库的密码进行了变更,你再提也提不上去代码了。你需要删除本地的凭证,然后再次提交,还会出登录弹框。你再输入新的账号密码,本地凭证再次记录,下次你就不用输入了。