Git

    Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目,局域网可以配置GitLab服务器,外网环境有GitHub、码云。常见的版本控制工具:Subversion(SVN)、CVS等

    版本控制工具的好处

        协同修改:多人并行不悖的修改服务器端的同一份文件

        数据备份:不仅保存目录和文件的当前状态,还能保存每一个提交过的历史状态

        版本管理:在保存每一个版本的信息时候要做到不保存重复数据,以节约存储空间,提高运行效率,这方面SVN采用文件系统快照方式

        权限控制:对团队中参与开发的人员进行权限控制,对团队外开发者贡献的代码进行审核——Git独有

    历史记录:查看修改人、修改时间、修改内容、修改信息。可将本地文件恢复到某一个历史状态

    分支管理:允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率

    Git的优势:

    a.大部分操作在本地完成,不需要联网

    b.尽可能添加数据而不是修改或删除数据

    c.分支操作非常快捷流畅

    d.与Linux命令兼容

安装Git及初始化本地仓库

    git --version:查看Git安装版本

    init:初始化命令,初始化完成后会有一个.git隐藏文件夹,用来管理Git仓库

.git

    git config --global user.name "配置全局用户名"

    git config --global user.email "配置用户邮箱"

初始化配置

    git add 文件名:将工作区的文件添加到暂存区

    git commit -m/message"修改注释":将暂存区的文件提交到本地库中

    git status [文件名]:查看暂存区/分支中的文件状态

git添加、提交、查看

查看日志:

    git log:查看历史记录,显示从最近到最远的日志

详细日志

    简化显示:git log --pretty=oneline

    查看简短日志:git reflog

简短日志

Git执行/存储流程

    代码工作区---add--->暂存区(属于临时存储)---commit--->本地库(历史流程)

    工作区、暂存区和本地仓库,逻辑上是本地计算机,当我们新建一个文件时,文件位于工作区,处于(modified)修改状态,还没有提交保存;通过git add命令将其添加到暂存区,文件是已暂存(staged)状态,表示把已修改的文件放到下次提交时要保存的清单中,通过命令git commit将文件放入本地仓库,文件为提交(commited)状态,表示该文件已经被安全地保存在本地数据库中,到这一步可以说是成功生成了一个新的版本,远程仓库用来将本地仓库上传到网络、实现备份、共享和合作

    git branch -v:查看当前git仓库所有分支

    git branch [分支名]:添加分支

    git checkout 分支名:切换分支

新建分支

    git branch -d/delete 分支名:删除分支

删除分支

    配置Git远程SSH Key

    ssh-keygen -t rsa -C "email,建议写真实邮箱",会有三次提示输入,直接回车即可

    在用户目录下生成 .ssh 目录 ,个 里面有一个 id_rsa.pub 文件 ,保存的就是公钥。

    登录码云,在 SSH 公钥文本框里粘贴 id_rsa.pub 文件的内容

    验证秘钥是否添加成功

    执行命令 ssh -T git@git.oschina.net

    Git 使用 SSH 连接第一次验证服务器的 key 时,需要你进行确认,此时输入 yes 回车即可。

    再次执行 ssh -T git@git.oschina.net

连接成功

    git remote -v:查看所有地址别名

    git remote add 别名 路径:添加新路径并配置别名

    git remote remove 别名:删除配置的别名/路径

配置地址

    git clone 仓库地址:克隆仓库/分支

    git pull [别名] [分支名]:从远程仓库下载

    git push [别名] [分支名]:推送到远程仓库

克隆,上传和下载

        Clone和Pull区别:

        Clone是克隆到Repository中,Pull是直接拉取到workspace中

注意:如果遇到上传代码冲突,一定要先Pull到本地,然后修改冲突的文件,最后add—>commit—>push

Git理解详情图

常用命令集:

mkdir: XX(创建一个空目录 XX 指目录名)

pwd: 显示当前目录的路径

git init 把当前的目录变成可以管理的 git 仓库,生成隐藏的.git 文件。

git add XX 把 XX 文件添加到暂存区。

git commit -m “XX” 提交文件 -m 后面的是注释

git status 查看仓库状态

git diff XX 查看 XX 文件修改了哪些内容

git log 查看历史记录

git reset -hard HEAD^ 或者 git reset -hard HEAD~ 回退到上一个版本(如果想回退到 100个版本,使用 git reset -hard HEAD~100)

cat XX 查看 XX 文件内容

git reflog 查看历史记录的版本号 id

git checkout --XX 把 XX 文件在工作区的修改全部撤销

git rm XX 删除 XX 文件

git remote add origin https://gitee.com/oldlu_wk/gittest.git 关联一个远程库

git push -u (第一次提交要用-u 以后不需要)origin master 把当前 master 分支推送到远程库

git clone https://gitee.com/oldlu_wk/gittest.git 从远程库中克隆

git checkout -b dev 创建 dev 分支 并切换到 dev 分支上

git branch 查看当前所有分支

git checkout master 切换回 master 分支

git merge dev 在当前分支上合并 dev 分支

git branch -d dev 删除 dev 分支

git branch name 创建分支

git stash 把当前的工作隐藏起来等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时也删除文件

git remote 查看远程库的信息


在IDEA中配置和操作Git

在IDEA中配置Git

    创建本地仓库,一般指定到项目结构下

创建本地仓库

    添加到暂存区和提交到本地仓库工作空间

添加到暂存区和提交到本地仓库工作空间

    配置远程仓库地址

1
2

    提交并上传

提交并上传

    上传过程中可能出现的问题: Push rejected: Push to origin/master was rejected

Push rejected: Push to origin/master was rejected

    解决办法:

    1.选择你要上传代码的文件夹,鼠标右键 git Bash Here

    2.输入下面两行命令

        git pull origin master --allow-unrelated-histories --把远程仓库中的内容 pull 到本地工作目录

        git push -u origin master -f --在 pull 下来的项目中做修改,通过以上命令 push 到远程仓库了

解决上传问题

    在IDEA中解决Git上传冲突问题

出现冲突

    点击合并

合并

    修改冲突文件

修改

    修改完成后即可Commit and Push

上传成功

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容