赞
踩
说明:国外github,国内gitee,某些公司内部gitlab(自己搭建服务器独立使用,私网、某些银行为gitlab)
页面右上角 “+”下拉选择 New repository(新建仓库)
输入项目名称: ep:hello_world
输入项目描述:第一个练习仓库
选择仓库可见性:一般Public
选择Initialize this repository with a README(使用自述文件初始化此仓库)———介绍项目内容
确认Create repository(创建仓库)
每次提交相当于文件某个时间点的快照(可理解为版本记录)
步骤:在仓库的文件列表中 需改README.md文件
Edit file/修改——》预览/Preview changes——》Commit changes/提交信息【修改的文件描述】——》提交新分支[主分支少操作]——》Propose file change/提议文件更改
某人个人资料头像下 Follow/关注作者
仓库顶部Watch/关注项目或仓库
1.仓库:
本地:自 己电脑上文件夹
远程:互联网服务器内的文件夹(一般讲master主仓库、你本地对应的远程仓库2个)
2.【分布式】版本控制系统 本地对比SVN:前者无中央服务器,每台电脑为一个完整版本库
配备两个仓库:自己电脑上本地仓库、远程服务器上一个远程仓库
提交文件时,先到本地仓库——》再到网络上的远程仓库 {本地到远程}
3.Git
分布式版本控制系统
4.GitHub常用词
watch:持续收到项目动态
fork:复制项目到自己仓库
star:点赞数,越多该项目越火
clone:项目下载到本地
follow:关注作者,收到他们的动态
https://blog.csdn.net/as480133937/article/details/105611577 (转自
Z小旋 参考文档带图)
location:china 匹配用户填写地址在China
language:java 匹配开发语言为java的开发者
followers:>=100 匹配过100名关注者的开发者
jack in:fullname 匹配用户实名为jack开发者
forks:》=20 匹配分支数量多于20项目
ep:举例查询boot项目
in:name boot 名称含boot
in:description XX 描述含XX
in:readme XX 介绍文档含XX
boot stars:>5000 点赞多于5000的boot项目
boot stars:80..100 forks:100..200 boot项目点赞81到100,下载或复制数100到200
size:>=数字 (100代表100kb,单位为kb)
pushed:>2020-01-02 boot 最后上传日期大于 boot项目
created:>YYYY-MM-DD boot 创建日期大于 boot项目
user:小米 language:Python 小米老师的python开源项目
awesome python 搜索优秀的项目包括框架、教程等
不可商用的,下载且使用,会有麻烦上门
几个友好协议:BSD、MPL(Mozilla)、Apache、MIT
ep:咱们要找协议是最为宽松的 Apache License 2 的代码,
license:apache-2.0 Spring Boot
【自我认识:用户名和邮箱作为一个标识,git知道谁的提交】
当安装完 Git ,必须设置你的用户名称与邮件地址。【因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改】:
git config --global user.name "xxxxxx":设置用户名。
git config --global user.email "xxxxxx":设置邮箱。
注意:local 当前仓库有效,global 该账户对所有仓库有效,system 对系统所有用户有效
git config user.name 查看用户名。
git config user.email 查看邮箱
git config --list --global 查看全部(用户+邮箱)
#清除配置 git config --unset --global [user.name](http://user.name) 【取消配置账户、或代理 认识即可】
项目处/文件夹/仓库 右键 git bush here——》命令窗口输入 ssh-keygen -t rsa -C "XX@XX.com" 得到密匙
查看: cat ~/.ssh/id_rsa.pub 或者默认C盘 【/c/Users/Administrator/.ssh】
密匙在id_rsa.pub文本中,复制密匙
setting——》SSH and GPG keys ——》new SSH key/新增密匙——》粘贴密匙
查看主机是否与github网站之间的ssh通信是否连接成功
ssh -T git@github.com
两种方法:1.是在现有项目或目录下导入所有文件到 Git远程中; 2.是从git里的一个服务器克隆一个xio的 Git 仓库。
简单理解:1.本地项目传到远程git中 2.远程git里项目克隆(拉取)到本地文件夹中
1.找到文件夹 ep: D:/www/testgit目录下执行 git init 【testgit录变为版本库】
2.添加 testgit目录下创建 readme.txt文件
git add readme.txt 放置暂存区 你准备提新增或修改的文件/代码了
git commit -m '描述' 放置本地版本库/本地仓库 告诉大家你改的文件说明
git status 查看哪些尚未提交,本地分支文件信息 【文件处于什么状态】git checkout -- readme.txt 或者 git restore readme.txt 丢弃修改的内容(在git add前操作)放弃工作区修改 注意:修改不是新增
删除:rm readme.txt 或到目录下直接删除
重复上述暂存 、提交操作即可
文件状态:git status 查看 【下为信息贴出区分】
干净的/原始状态
$ git status On branch master nothing to commit, working directory clean未跟踪/新建文件
Untracked files: readme.txt nothing added to commit but untracked files present跟踪/ git add XX操作
Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README # 新增文件 modified: CONTRIBUTING.md #原来有修改的文件
- $ git clone https://github.com/xxx/xxx mytest
- 在D盘执行上述命令
- # mytest 拉取远程项目到d://mytest//
- # 不加mytest 拉取到D:盘
git clone http://XXXX 克隆远程仓库代码到本地仓库/文件夹
git pull 更新分支代码
git add . 提交全部到暂存区 注意点号
git commit -m'备注信息' 创建提交 暂存区内容到本地仓库取消/撤回 commit:git reset --soft HEAD^ 或git reset --soft HEAD~1
进行了2次commit,想都撤回,可以使用HEAD~2
只是想更改注释 :git commit --amend 【进入默认vim编辑器,修改注释完毕后保存就好了】
git push 提交修改的代码到远程仓库
git --version 查询git版本号
git checkout/switch test 切换到test分支(多个分支时,来回切换)
1.1创建并切换到dev分支 ep:git checkout -b 本地名 origin/远程名 ##本地与远程分支有映射关系
1.2 git fetch origin 远程名:本地名 然后 git checkout 本地名 【写法等同于1.1】
git fetch -p 获取被删减后的远程分支,更新远程最新状态+存储信息
##本地与远程无映射关系
git branch --set-upstream-to=origin/dev dev,建立本地分支和远程分支的关联
#新版git 区分checkout 的创建和撤销 Git switch -c dev创建并切换到dev分支
git branch -a 查看本地和远程分支 Git branch 查看当前分支
git branch dev 创建dev分支
git merge test test分支合并到当前分支 【 合并后test分支消息看不到在当前分支】
#注意:
如果因冲突导致自动合并失败,此时 status 为mergeing 状态。
需要手动修改后重新提交(commit)
git push origin dev本地:dev远程 推送当前分支到远程分支
git push origin --delete 分支名 删除远程分支
git branch -d dev 删除本地dev分支 git branch -D dev 强制删除git remote update origin -p 更新远程分支,当一段时间有新分支或删除时,更新最新状态的
git init 创建或初始化一个现有仓库 就是将所在文件夹变为可管理的仓库
git log [--oneline] 查看当前HEAD及之前版本信息 【git log --graph 图形化显示】
git reflog 查看历史操作记录,重返未来查看最新的提交版本
git status 查看本地哪些文件未提交
git diff 文件名 查看更改了哪些内容
git stash 把当前工作保存、隐藏
git stash list 查看所有保存的文件列表
git stash apply 恢复被隐藏文件,但是内容不删除 ep:git stash apply {stash id}
git stash drop 删除暂存区记录标识
Git stash pop 恢复并删除工作现场
git mv 原文件名 新文件名 修改文件名字
git rm -f 文件名 删除文件
git cherry-pick 分支提交版本号【另一分支某个提交合并到当前分支】
git remote -v 查看远程仓库信息
查看所有标签 git tag
把当前分支的最新提交打上标签,标签名字自己起 git tag 标签名
把某个版本号的提交打上标签 git tag 标签名 对应commit版本号
可以用这种方式给标签增加说明,-a对应标签名,-m对应描述信息
git tag -a v0.1 -m “描述信息” 版本号查看标签具体信息 git show 标签名
删除标签 git tag -d 标签名
###推送标签
推送某个标签到远程 git push origin 标签名推送所有标签到远程 git push origin --tags
删除远程标签:
先删除本地标签 git tag -d 标签名
然后从远程删除 git push origin: refs/tags/标签名
1.本地回退/版本回退
git reflog 查看所有历史版本信息 比git log 查询范围广
git reset --hard XXX 少用,因为回退后,回退版本后的修改的代码没了/记录也没有。ep:分支A上版本号a123,你对read.txt 文件修改/删除操作,然后提交版本号为a124。
你回退git reset --hard a123 结果你没对read.txt做操作,等于你之前做的修改丢失,需要重新写代码(改的内容多时,你就完蛋了!记不住啊)
*******回滚版本/版本回退
git reset --hard HEAD^ 回滚到上个版本
git reset --hard HEAD^~2 回滚到前两个版本
git reset --hard XXX 版本号或版本前几位【自动匹配版本号】理解hard、soft、mixed区别
本地工作目录内容保留 mixed 默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 【修改、新增东西不在暂存区】
本地工作目录内容以及暂存区内容保留 soft 还要提交,直接commit即可 【修改、新增的东西已在暂存区中】
本地工作目录内容以及暂存区内容全部回退至某一个版本 hard 【回退的版本之后的版本/修改的代码丢失,一般保持分支干净度使用】
2.撤销版本,保留该目标版本后面的版本(重做)
ep:第一次提交后版本号a123,新增了文件text1.txt;第二次提交后版本号b123,新增了文件text2.txt,此时不想要text1.txt但是要保留text2.txt.
git revert -n a123 (若有冲突,手动修改冲突文件)
git commit -m "revert add text1.txt" (提交信息表明是)
git push [此时只有text2.txt文件]
3.强制推送到远程 【尽量少用,确保不会影响他人代码】
git push -f origin 远程分支名
git reset
和git revert
都是属于重新恢复工作区以及远程提交的方式,但这两种操作不同:
git reset
是将之前的提交记录全部抹去,将 HEAD 指向自己重置的提交记录,对应的提交记录都不复存在;
git revert
操作是将选择的某一次提交记录 重做,若之后又有提交,提交记录还存在,只是将指定提交的代码给清除掉4. Git restore 文件名
git restore [file] 将不在暂存区的文件撤销更改【更改包含增、删、改】
add暂存区时 git restore --staged 文件名 或 Git reset HEAD文件名
工作区:电脑中目录
暂存区:.git目录下的index文件 俗称——索引
版本库:.git目录,git的版本库
####关联 先有本地项目时,关联到远程仓库
git remote add origin 自己git项目地址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。