Git基本操作。一篇解决

Git

git的工作流程

image.png
image.png

基本流程

image.png

git pull

image.png

一、Git的安装

https://git-scm.com/download/win 下载地址

image.png

GITHUB下载比较慢,我们可以去国内镜像下载 https://npm.taobao.org/mirrors/git-for-windows/

下载之后一直下一步安装完即可。

安装完成后,邮件会多出来2个git开头的选项

image.png

双击GIt Bash Here. 在这种命令窗口下可以使用linux命名。

出现如下画面就可以输入git命令了

image.png

命令

1. git init

git init xxx初始化 新建立一个代码仓库

image.png

然后adeng文件夹下面会多出来一个.get的文件夹

image.png

.git 文件夹下面有如下文件 .git下面的文件不要删,删了就不会被管理了

image.png

2. git add .

git add a.txt将a.txt文件提交到管理区。git status查看状态 文件是绿色表示在暂存区。红色表示未被管理。如下图:

image.png

3. git commit -m "本次提交说明"

git commit 提交到版本库

image.png

第一次使用git commit -m "xxx"会出现如下画面

git config --global user.name "这里是你的github用户名"

git config --global user.email xxx@xxx.com(你的邮箱)

image.png

怎么解决呢:

一次输入两行命名就行。

再次输入git commit -m "新增修改a文件数据" 就没有报错了

image.png

会在用户目录下有个.gitconfig文件,内容就是上面敲的2条命令中的 邮箱和用户名

image.png

4. git checkout . 当前路径下的文件回滚到提交前版本

上面我修改了a.txt文件的数据。

image.png

之前是没有数据的。现在a.txt已经在版本库里面了。这时候执行git checkout . 就会回到提交前。

5.git log 查看版本管理日志

  • git reflog 显示当前分支最近提交
image.png

6. git status 查看状态

7.git reset --hard 版本

版本号就是commit后面那一串字符,可以不用写全。如下


image.png

8. 如何忽略文件

  • 新建的空文件夹,不会被管理。里面只要加了东西,git status就会红色
  • 指定某些文件或者文件夹不被git管理
  • 在项目根路径,跟.git文件夹一个路径,新建.gitignore文件
  • # 号 是注释,没有用
  • 文件夹名字,表示 此文件夹不被管理
  • 文件夹摸个文件想忽略 就写 想忽略的文件路径,支持通配符*
  • /dist表示根路径下的dist文件夹,不被管理
  • *.py 表示后缀为py文件的不被管理
  • *.log* 带有.log的任意文件不被管理
  • !a.txt 除了a.txt不被管理

注意新建.gitignore时候后面多加个. 不然windows上面会报错

image.png

.gitignore 创建好了如上图。

image.png
  • 如下所看到git status c文件有东西的情况也没变红。.gitignore这个文件我们还是要管理的。
image.png

想忽略文件夹下的某个文件。直接写上文件的路径在.gitignore里面

image.png
image.png

py结尾的文件没有提交到暂存区,其他都提交到了暂存区。如下图:

image.png

一般.gitignore如下图那么去写

image.png

分支操作

image.png
  1. git branch 查看所有分支,如果是绿的,表示在当前分支上。
image.png
  1. git branch 分支名 创建分支
  2. git checkout 分支名 切换
image.png
  1. git branch -d 分支名 删除分支名

注意如果在分支上,是不能删除的.需要切换到master上在删除

image.png
  1. git checkout -b 分支名 创建并切换
  2. git branch -a 查看远程分支和本地分支
  3. git branch -r 查看远程分支
  4. git merge 分支名 把dev分支合并到master分支:切换到master分支,执行合并dev分支的命令

分支合并注意点:

master: 主分支,主要用来版本发布。
develop:日常开发分支,该分支正常保存了开发的最新代码。
feature:具体的功能开发分支,只与 develop 分支交互。
release:release 分支可以认为是 master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release 分支,测试没有问题并且到了发布日期就合并到 master 分支,进行发布。
hotfix:线上 bug 修复分支

GITEE 账号注册

https://gitee.com 注册就不说了

配置SSH公钥

登录gitee--个人头像--设置--ssh公钥

image.png

如何生成公钥步骤:

  1. 在个人用户目录【C:\Users\xxx】下简历一个.ssh的目录。创建目录需要输入.ssh.创立。

  2. 右键git bash here

  3. 输入 ssh-keygen -t rsa -C "xxxxx@xxxxx.com"生成公钥和私钥。但是我们只要公钥

image.png
  1. 复制.ssh文件夹下面id_rsa.pub文件的公钥粘贴到gitee上面ssh文本框里
  2. 添加后,在终端(Terminal)中输入
    ssh -T git@gitee.com

详细设置ssh公钥参考地址:https://gitee.com/help/articles/4181#article-header0

码云创建一个自己的仓库

看图跟着走吧,一目了然

image.png

image.png

这样gitee仓库就生成好了如下图

image.png

pycharm继承GIT

pycharm新建一个项目。

git clone先拉取gitee上面创建的仓库地址。

将gitee仓库的所有文件复制到新建的项目里。

image.png

重启pycharm会发现多出来如下git在图标

image.png
  • 红色1.py 表示未被管理的状态

pycharm如何提交(相当于 git commit -m )

image.png
image.png

提交之后:会图下图发现 没有任何红色了

image.png

pycharm终端也可以输入 git命令进行提交 效果一样

pycharm git push到远程仓库

image.png

1.py 和 2.py成功推送到了远程仓库

image.png

init创建的仓库添加到gitee

使用url地址添加远程库 git remote add 远程仓库名 url 添加一个远程仓库

git remote add 远程仓库名 https://gitee.com/name/object_name.git

  • git remote 查看关联的远程仓库的名称
  • 查看远程库信息:git remote -v
  • 移除和远程库的连接:git remote remove orgin

push推送到远程仓库

  • git push -u origin master 将本地分支的更新全部推送到远程仓库master分支。
  • git push origin -d <branchname> 删除远程branchname分支
  • git push --tags 推送所有标签

pulss 拉取远程仓库代码

  • git pull 拉取远程仓库所有分支更新并合并到本地分支。

  • git pull origin master 将远程master分支合并到当前本地分支

  • git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支

  • git fetch --all 拉取所有远端的最新代码

  • git fetch origin master 拉取远程最新master分支代码

免密登录

  • git push -u origin master 这条命令老师要输入密码 如何免密?

1 . cd到home目录 cd ~
2.创建一个文件夹 touch .git-credentials
3.vi .git-credentials
输入 http://{用户名}:{密码}@gitee.com github:github.com

  1. .gitconfig下面会多出来
    [credential]
    helper = store
image.png

git bash 过程

image.png

一般的流程

git全局设置

git config --global user.name "这里是你的github用户名"   

git config --global user.email "17740808@qq.com"

创建远程仓库

mkdir my_python
cd my_python
git init
touch README.MD
git status
git add .
git commit -m "第一次提交" 
git remote add origin https://gitee.com/name/object_name.git
git push -u origin master
git pull 

创建dev分支,并且切换到dev.

image-20211103135412185

本地分支有master和dev 远程这时候只有dev

image-20211103135642276

这时候把本地dev分支推送到远程dev分支。git push -u origin dev

image-20211103141047679
image-20211103141242432

删除远程dev 分支 git push -u origin -d dev

image-20211103141556991
image-20211103141624927

git push 默认是推送到远程仓库 一摸一样的分支上面

image-20211103141944380

而远程仓库有master dev两个分支,你拉取代码之后本地只有一个master,所以本地git push -u origin 指明远程仓库的分支名 否则会推送到和本地一抹一样的分支名上面。

分支合并

比如把dev分支合并到master分支。先git checkout master 然后在执行合并到master分支,get merge dev

image-20211103143928932

pycharm合并,也是要先切换到master 然后如图操作

image-20211103153014614

解决版本冲突

先去gitee上面拉取一个仓库的代码

如下图从python_sduty.仓库拉取2次。

第一次放在I:\python20\softwaredate\python_sduty

第一次放在I:\python20\softwaredate\python_sduty1

git@gitee.com:adeng520/python_sduty.git

I:\python20\softwaredate\python_sduty1

image-20211103114854732
image-20211103115051196

如图A B 两个开发,刚开始一模一样,都同时开发这个py文件

image-20211103155230062

B开发 添加了c=3 并且提交了代码

image-20211103155114796

A开发 添加了一行 d=5的代码 如图

image-20211103155445258

A开发这时候,先pull一下代码 结果发现冲突了

image-20211103155936164
image-20211103160029679

解决完冲突A开发 继续提交了代码到远程仓库

image-20211103160306570

最后push发现提交成功了,表示这次冲突完美解决

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

推荐阅读更多精彩内容