git使用

git

1.git介绍

# 代码管理软件
	git
    svn
 
#作用 -- 用来做代码管理【文件管理】
	1.帮助开发者合并开发代码 协同开发
    2.如果出现冲突代码的合并 会提示后提交合并代码的开发者 让其解决冲突
    3.代码版本管理
    
#git 与 svn比较
	svn:集成式管理 服务端挂掉就做不了版本管理 代码合并
    git:分布式管理 服务端挂点 本地还可以继续做版本管理 合并代码【】

2.git、gitee、github、gitlab

# git:
	版本管理软件 装在操作系统之上 有很多命令
#gitee:
	远程仓库 开源代码 私有代码 有网站可以看到有哪些开源代码 通过网站做一些配置
    	国内最大的开源远程仓库
        小公司 -- 使用gitee的私有仓库
#github:
	只有私有仓库 -- 远程代码仓库
#gitlab:
	公司内部的远程仓库

3.git使用流程

3.1 软件安装

# 双击下载 全部next
	任意枯井下右键 多出两个带git标的东西
    cmd中输入 git 有反应 就证明装好了

3.2 git工作流程

# 三个区
	工作区		存放文件的地方【红色】 
    暂存区		工作区的变更 提交到暂存区【绿色】
    版本去		暂存区的内容 提交到版本库【没有颜色】
    
#三个区相互操作
	操作指令

image

4.git常用

1.文件夹想被git管理 文件夹作为仓库
	先右键某个文件
    git init
    #初始化仓库 当文件夹多出一个.git文件夹【隐藏文件】 这个文件夹不要删 删了就不是git仓库了 之前的版本找不回来 也不能被git管理
    git init 文件名
    #在上一级目录敲
    
2.查看文件变化 在.git所在文件夹下 【只能看暂存区和工作区】
	git status
    #看到两种颜色
    红:在工作区的 没有提交到暂存区
    绿:提交到暂存区了 没有提交到版本库
    没有 :所有东西都在版本库中了 
 
3.把工作区变更到暂存区
	git add 文件名
    git add .  #当前路径下所有变更都提交
   
4.把暂存区所有内容提交到版本库作为一个版本
	git commmit -m '提交了1.txt'
    
5.设置作者(全局 局部)
	#全局
    git config --global user.email "邮箱"
    git config --global user.name "姓名"
    #局部
    git config  user.email "邮箱"
    git config  user.name "姓名"
    
6.查看版本库版本信息
	git log	
    git reflog	#精简版
    
7.回到某个版本
	只要被版本管理了 就可以回退到任意版本
    git rest --hard 版本号
---------------------------------------------------------------
8.把工作区的变更 回退 【暂时还没放到暂存区】
	git checkout .
9.把暂存区拉回到工作区
	git reset HEAD

总结:

记住的:
	git add .
    git commit -m '提交了'
    git reset --hard 版本号
    
会用:
	git init
    git sataus
    git log
    git reflog
    
了解:
	git checkout .
    git reset HEAD
    git config --global user.email "邮箱"
    git config --global user.name "姓名"
    
"""
1)有红色信息(工作区有内容),就执行 add 
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
空文件夹不会被git记录
"""

5.git忽略文件

# 咱们项目中,有些文件,或文件夹不想被git管理
	-比如:
    	-node_models
        -.idea
        -xx.pyc  # python 的编译文件
        
        
# 使用步骤
	-1 在仓库目录下  .git 所在目录下   新建  .gitignore
    -2 在里面写忽略文件
    -node_models
    -.idea
    -*.pyc
    -*.log
    -3 写的就会被忽略
 
    -4 已经被管理过的不会被忽略
    
# 忽略文件写法
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤

例如:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)

6.git多分支

#为什么要有分支 
	我们可以保证 主分支的版本都是可以查看的版本
    我们都在开发分支开发 开发完成 合并到主分支

6.1 分支操作

分支查看 
	git branch
分支创建
	git branch 分支名 
分支切换
	git checkoout 分支名
分支删除
	git branch -d 分支名

6.2 合并分支

#把dev合并进master:
先来到master分支:
	git checkout master
执行合并命令 
	git merge dev
'''
把dev合并到master身上
合并分支可能会出现冲突
'''

6.3 公司里分支方案:小公司

1.master分支、dev分支、bug分支 所有人在dev分支开发 开发完合并到主分支
2.master分支、dev分支、bug分支、个人分支 个人在个人分支上开发 开发完成合并到dev分支                             

7.git远程仓库

# 把本地的版本提交到远程仓库
# gitee、github、gitlab
# gitlab的搭建过程:https://zhuanlan.zhihu.com/p/413217715

#luffy项目文件已经写好了一部分 要把代码提交到远程仓库

7.1 操作步骤

本地:

1.在luffy_lzy敲 git init
2.设置忽略文件(.gitignore)
3.git add .
4.git commit -m '一定能要写详细一点的注释o!'
提交到版本库 -- 被版本管理了

远程:

1.远程要创建库 :
	1.gitee上创建仓库 右上角+号
    2.填一些信息	保证仓库是空的 不能点初始化readme文件

image

本地:

1.按照远端提示的步骤操作
2.设置用户和邮箱
3.咱们是已有仓库
	cd luffy_lzy
    # 添加一个远程仓库地址名字叫origin,地址是xxx
    git remote add origin https://gitee.com/li-li-great-adventure/luffy_lzy.git  
     # 把本地的版本库推送到远程仓库
     # 把本地当前所在分支,推送到 origin对应的远程的master上
	 git push origin master
     # 需要输入用户名密码,输入一次,以后就不用输入了(本地保存了:凭据管理)
        
# 如果提交了,再写忽略文件的步骤
    luffy.log--->暂存区---》版本库
    
    .gitignore---》写上忽略,但是不好被忽略,只要luffy.log有变化还是会被监控到
    
    删除luffy.log---》会被监控到---》add,commit---》版本库中已经没有luffy.log
    再出的luffy.log,就不会被管理了

8.ssh方式链接远程仓库

# 刚刚提交代码---》输入了用户名密码---》才可以提交上去----》使用的是https的协议提交的代码
	-它需要输入用户名和密码
    
    
# 咱们要使用ssh方案:需要公钥和私钥   ---》公司里这种方式多
	-私钥在本地保存
    -公钥配置到gitee上
    -以后再提交代码,不需要其他任何认证了,一路绿灯
    
    
    
# 使用步骤:
	- 生成公钥私钥:https://gitee.com/help/articles/4181
    	-在命令窗口中执行,一路回车
        ssh-keygen -t ed25519 -C "1042392645@qq.com" 
        -生成在:C:\Users\Administrator\.ssh  两个文件,一个公钥,一个私钥
   -把公钥,配置在gitee上
   -之前origin对应的地址是 https的,现在要使用ssh提交代码,需要把它删除,再增加成ssh的协议
		git remote remove origin
        git remote add origin git@gitee.com:li-li-great-adventure/luffy_lzy.git
         git push origin(仓库名) master

9.协同开发

#我创建了仓库 我对仓库有各种权限
#在仓库中可以将一起创作项目的人设置为仓库开发者 设置完成 其他人在仓库中就可以就看到我的项目了

#仓库管理员 邀请开发者进入
	邀请的开发者对这个仓库拥有读写权力啊 他们就就可以开发代码 提交
    
#我作为开发者 本地没有代码
	1.把代码从远程仓库克隆下来
    	git clone (项目的ssh地址)git@gitee.com:liuqingzheng/luffy_api.git
    2.使用pycharm打开 配置好解释器 安装依赖
    3.开发代码 开发完 
    git add
    git config user.name lqz
    git config user.email 3@qq.com        
    git commit -m '注释'
    git push origin master 推 

10.冲突解决

#出现冲突的原因1
	1.多人在同一分支开发
    2.分支合并出现冲突
    
#多人在统一分支开发冲突
	,-同桌:
    	git pull origin master
        在第一行加入 vcv
        git add . 
        git commit -m '注释'
        git push origin master
        
      -我:
    	在第一行加入 yy
        git add .
        git commit -m '注释'
        git push origin master
        #冲突了
解决冲突:
	冲突的交投去掉 阅读代码 选择保留自己或者别人的代码再提交
    提交到远程仓库
    
    # 冲突出现的样子:你如果要删除别人的代码,你需要跟别人说一声
    <<<<<<< HEAD   我的代码
    print('刘亦菲')
    =======   它的代码
    print('彭于晏')
    >>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5
    
    接着 :git add .
          git commit -m '注释'
          git push origin master
          #冲突了
避免出现冲突:
	勤拉代码*_*
# 冲突出现的原因2 分支合并出冲突
	我:
    	1.创建dev分钟
        	git branch dev
        2.在dev分支项目中第一行加ccc
        3.提交到本地仓库
        
    我:
    	1.在主分支的第一行中加ddd
        2.提交到版本库
        3.在主分支合并代码 
        	git merge dev 
        4.冲突了 解决冲突
        5.再提交代码 到此结束

11.线上分支合并

#线下分支合并 
	git merge  dev
 
#线上  分支合并
	gitee上 新建一个分支 点点点创建出来
   -本地同步远程dev分支
    	git pull origin dev
    	#拉下来 还看不到 只有切过去才看得到
    	git checkout dev
   -在dev上开发
		随便加代码
    	git add .
    	git commit -m '注释'
    	#提交到本地的dev
   -推到远端 dev
		git push origin dev 
    -master中没有代码 dev中有提交的 现在要线上分支合并
    -把远程的dev合并金远程的master
    -提交dev 提交rr
    -在网站上 申请提交pull request
    -领导审核 测试通过后点击合并 
    -线上dev就合并进线上的master了
	

12.远程仓库回滚

#最好别用
#想远程的代码 是最初的状态

#步骤:
	1.本地版本回退
    	git reset --hard 版本号
    2.强行推到远端
    	git push origin master -f

## 13.为开源项目贡献代码

```python
'''
github、gitee上面看到好的开源项目 发现有bug 为它增加新的功能 --- 你加入了你的代码 乡合并进开源项目应该如何做:
'''
步骤:
	1.先fork开源项目 复制这个项目到我的仓库中
    2.clone下来 改代码 一路提交到远端
    3.提交pr,等作者同意

14.pycharm使用git

#只要用命令操作的 都可以用点点点完成

先配置pycharm使用git

先配置git的安装路径

image

直接右击想要操作的文件就可以进行操作

image

提交 版本库时也一定要写注释

上面的箭头代表 推 和拉 对勾就是提交

image

右下角的分支管理

所有的指令在这列都可以通过点点操作(自己试验一下)

image

远程仓库管理

image

双击下面的日志可以看到和原来的版本对比

image

点下面的git 可以看到提交记录

image

posted @ 2023-03-02 20:26  李李大冒险  阅读(24)  评论(0编辑  收藏  举报
  1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 迷人的危险3 FAFA
  4. 4 山楂树之恋 程佳佳
  5. 5 summertime cinnamons / evening cinema
  6. 6 不谓侠(Cover 萧忆情Alex) CRITTY
  7. 7 神武醉相思(翻自 优我女团) 双笙(陈元汐)
  8. 8 空山新雨后 音阙诗听 / 锦零
  9. 9 Wonderful U (Demo Version) AGA
  10. 10 广寒宫 丸子呦
  11. 11 陪我看日出 回音哥
  12. 12 春夏秋冬的你 王宇良
  13. 13 世界が终わるまでは… WANDS
  14. 14 多想在平庸的生活拥抱你 隔壁老樊
  15. 15 千禧 徐秉龙
  16. 16 我的一个道姑朋友 双笙(陈元汐)
  17. 17 大鱼 (Cover 周深) 双笙(陈元汐)
  18. 18 霜雪千年(Cover 洛天依 / 乐正绫) 双笙(陈元汐) / 封茗囧菌
  19. 19 云烟成雨(翻自 房东的猫) 周玥
  20. 20 情深深雨濛濛 杨胖雨
  21. 21 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  22. 22 斑马斑马 房东的猫
  23. 23 See You Again Wiz Khalifa / Charlie Puth
  24. 24 Faded Alan Walker
  25. 25 Natural J.Fla
  26. 26 New Soul Vox Angeli
  27. 27 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  28. 28 像鱼 王贰浪
  29. 29 Bye Bye Bye Lovestoned
  30. 30 Blame You 眠 / Lopu$
  31. 31 Believer J.Fla
  32. 32 书信 戴羽彤
  33. 33 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  34. 34 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  35. 35 慢慢喜欢你 LIve版 戴羽彤
  36. 36 病变 戴羽彤
  37. 37 那女孩对我说 (完整版) Uu
  38. 38 绿色 陈雪凝
  39. 39 月牙湾 LIve版 戴羽彤
像鱼 - 王贰浪
00:00 / 04:45
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 周有才

作曲 : 周有才

这是一首简单的歌

没有什么独特

试着代入我的心事

它那么幼稚

像个顽皮的孩子

多么可笑的心事

只剩我还在坚持

谁能看透我的眼睛

让我能够不再失明

我要记住你的样子

像鱼记住水的拥抱

像云在天空中停靠

夜晚的来到

也不会忘了阳光的温暖

我要忘了你的样子

像鱼忘了海的味道

放下所有梦和烦恼

却放不下回忆的乞讨

多么可笑的心事

只剩我还在坚持

谁能看透我的眼睛

让我能够不再失明

记住你的样子

像鱼记住水的拥抱

像云在天空中停靠

夜晚的来到

也不会忘了阳光的温暖

我要忘了你的样子

像鱼忘了海的味道

放下所有梦和烦恼

却放不下回忆的乞讨

只剩自己就好