git常用场景

Git常用场景

新手入坑Git的六大常用场景,包括

  • Git简介

  • 建立本地Git仓库——连接远程仓库

  • clone

  • push

  • pull

  • 冲突

  • 忽略指定文件的上传

场景1:

Git简介

Git是一个软件,这个软件可以用来对我们的版本进行控制,换句话说就是一个同步软件,类似于百度网盘中的同步空间一样,当你在本地对一个项目的某个文件进行修改后,可以通过Git把这次更改操作记录下来(add+commit),如果突然有一天你先回到这次更改操作前,可以直接退回到之前的版本上。

当日Git还可以与远端数据库(比如GitHub等)一起连用,把Git与GitHub连接后,可以在本地写完代码,上传(push)到云端的GitHub仓库中,当然这个在云端的GitHub仓库也是可以被其他人访问的,如果别人想要下载你写的项目,他也可以通过Git克隆(clone)一份到他自己的本地。在随后的多人开发中,每个人都可以把自己修改的内容push到GitHub仓库上,并把别人的修改pull到自己的本地数据库中。


场景2:建库——连接

A在本地创建了一个项目test_for_git,想要通过git进行版本控制,并将他上传到GitHub上。
  1. 假设项目test_for_git的文件夹有一个sample.txt文件,在此文件夹下右键——Open Git Bash here

  2. 在命令行下输入git init
    在这里插入图片描述
    这行命令是将test_for_git所在文件夹变成Git仓库,直观的表现就是在此文件夹下多了一个.git的隐藏文件,当GIt扫描到某个文件夹下有.git文件时,就会认定此文件夹为一个Git仓库。

  3. 使用命令行查看当前库的状态

    输命令行入

    git status
    

    可以查看到当前库中有一个标红文件sample.txt没有被Git添加索引并提交过(一个文件只有被track并commit,Git才会正式记录这次版本更新)。
    在这里插入图片描述

  4. 使用命令行为文件添加track

    git add sample.txt
    

    或者

    git add .
    

    第一个版本是指定sample.txt添加track,再使用git status查看文件从红色变成了绿色,第二个版本是将此文件夹下所有发生改变的文件添加track(也就是上面git status显示的红色文件)。
    在这里插入图片描述

  5. 使用命令行commit

    git commit -m "第一次提交"
    

在这里插入图片描述
选项-m后面跟着这次提交的摘要,为必填项,方便以后自己或者别人可以快速检索。

  1. 在GitHub上新建一个仓库用来存放从本地的test_for_git文件夹

    在GitHub上新建了一个名叫GitHub_test_git的仓库用来存储test_for_git项目。

    这里Add a README file不要勾选,因为勾选后新建的仓库就不是空仓库,里面会有一个README文件,在后面上传(push)项目的时候会报错。报错的原因参考链接中的第六步。Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)_github仓库_你脸上有BUG的博客-CSDN博客

  2. 将本地仓库与GitHub仓库连接绑定。

    在此步骤之前需要配置shh key,参考链接中的第五步。Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)_github仓库_你脸上有BUG的博客-CSDN博客

    上述第6步 在GitHub新建完成后可以看到此界面:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gx4XI1ss-1691066299265)(E:\typora_files\git\新建仓库.png)]

​ 找到…or create a new repository on the command line找到

git remote add origin https://github.com/clarifyC/GitHub_test_git.git

​ 在Git Bash中输入这段命令,将本地仓库与GitHub仓库连接。
在这里插入图片描述
​ 其中https://github.com/clarifyC/GitHub_test_git.git是GitHub仓库的远程地址,origin是本地的 Git为这个远程仓库起的别名,下次可以直接使用别名代替这一长串的地址。关于origin的更多内容参考链接Git 里面的 origin 到底代表啥意思? - 知乎 (zhihu.com)

​ 执行完这句语句后,观察.git文件夹下的config文件,可以发现刚才的配置写入了进来。
在这里插入图片描述

  1. 将本地内容上传(push)到GitHub仓库上

    将本地仓库和GitHub上的远程仓库绑定好后,通过一下命令将本地的代码上传到GitHub上

    • 如果是对GitHub仓库的首次推送

      git push -u origin master
      
    • 之后的推送使用一下命令

      git push origin master
      

    其中命令的含义是将本地的代码推送到叫origin的远程仓库下的master分支。首次推送为什么要加-u,随后的推送为什么不要加-u参考链接git push 的 -u 参数含义_git push-u_Lakers2015的博客-CSDN博客
    在这里插入图片描述

    GitHub仓库发生了变化在这里插入图片描述

    如果推送的过程中报错误433,是因为网络原因,多推送几次即可。

命令总结:

git init 				//将文件夹升级为Git仓库
git add "sample.txt" 	//为文件sample.txt添加track
git add .				//为发生变更的所有文件添加track
git commit -m "提交摘要" //将当前track的文件提交
git remote add origin https://github.com/clarifyC/GitHub_test_git.git //连接远程仓库
git push -u origin master //首次推送
git push origin master 	  //随后使用默认值推送

场景3:clone

B想要和A协助完成test_for_git,B首先需要从A的GitHub仓库中拷贝一份test_for_git到自己的本地仓库中。
  1. 获取远程仓库的地址。
    在这里插入图片描述

  2. 在本地目标文件夹下右键Open Git Bash here

    输入克隆命令

git clone https://github.com/clarifyC/GitHub_test_git.git test_for_git2
解释:git clone 远程仓库地址 克隆到本地的目标文件夹

场景4:push

B得到test_for_git后,在A更新GitHub前完成了一部分开发,想要将修改部分更新到GitHub。

由于A还没有对远程仓库的内容进行修改,B是在自己克隆后,对远程仓库的首次修改,这不会和别人的提交发生冲突,当然这也是独立开发一个项目常用场景。

分别执行以下命令:

git add .
git commit -m "test_for_git2修改"
git push origin master

在这里插入图片描述


场景5:pull

A想继续开发前得知B已经在GitHub上更新了一部分内容,则A想在开发前将GitHub上的修改更新到本地。

距离A上一次push后到开始准备再次开发的期间,A本地的仓库没有发生任何更改,而在GitHub的远程仓库已经被B进行了更改。A想要再次继续开发前,需要将B对远程仓库的更改拉(pull)到自己的本地。

test_for_git文件夹下右键——Open Git Bash here输入以下命令:

git pull origin master

上面的命令表示从名为origin的远程数据库的master分支拉去代码,与当前分支(默认)合并。

命令的完整版本:
git pull <远程主机名> <远程分支名>:<本地分支名>
例如:从名为origin的远程数据库的master分支上拉去代码与本地的localBranch分支合并
git pull origin master:localBranch

如果只写,省略其他参数
git pull
将以文件`.git/log`记录的默认值拉去

场景6:冲突

A和B在自己的本地同时进行着开发,但是A将自己的修改先上传到了GitHub仓库,B随后再将自己的修改上传到GitHub仓库。

A先将自己的修改push到了远程仓库,而B也打算把自己的修改上传远程仓库,但是恰好它们都对同一个文件进行了修改,如果B强行push,则会把A之前的修改给覆盖掉,造成丢失。这就需要B将A的修改先pull到自己的本地,手动对比合并后才能再次push。

test_for_git 的在最后两行添加了111111和222222,并添加track和commit,再让test_for_git1先push

git add .
git commit -m "git1先push"
git push origin master

在这里插入图片描述
在这里插入图片描述

test_for_git2 的在最后两行添加了3333333和4444444,并添加track和commit

git add .
git commit -m "git1的修改"

在这里插入图片描述

如果test_for_git2要push的话,会报错
在这里插入图片描述

test_for_git2将远程仓库的修改pull到本地,进行手动合并
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YUZqERJM-1691066299275)(E:\typora_files\git\手动合并.png)]
在这里插入图片描述

手动合并完成后,进行添加track并commit,再可以成功push

git add .
git commit -m "手动合并"
git push

在这里插入图片描述


场景7:

A再项目中有一些本地配置文件或者数据库中的数据不想上传到远程仓库,他在上传过程中需要忽略一些文件。

在根目录下(一般与.git同级)新建一个.gitignore文件,在文件中输入以下配置:

/data/  // 忽略这个data目录
log/*     // 忽略log下的所有文件
css/*.css // 忽略css目录下的.css文件

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值