git以及github使用

一、git

1.1 git介绍

Git是一个开源的分布式版本控制系统,可以用于处理各种类型的项目;是一个版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具。

Git本地有三个工作区域:工作目录 (Working Directory )、暂存区(Stage/Index)、资源库 (Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作 区域.文件在这四个区域之间的转换关系如下:
在这里插入图片描述
Workspace :工作区,就是你平时存放项目代码的地方

Index l Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列 表信息

Repository :仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数 据。其中HEAD指向最新放入仓库的版本

Remote :远程仓库,抡管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据 交换

1.2 工作流程

git的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件; --vim/touch result.xml # 创建文件

  2. 将需要进行版本管理的文件放入暂存区域; --git add . # 全部上传/git add filename # 上传指定 文件

  3. 将暂存区域的文件提交到git仓库。–git commit # 上传至本地仓库

  4. 将文件上传至远程仓库。 --git push url 因此,git管理的文件有三种状态︰已修改( modified ) ,已暂存( staged ) ,已提交(committed) 各个部分转换关系及命令如下图:

    在这里插入图片描述

1.3 git下载

Git客户端官网下载链接:https://git-scm.com/downloads

GIt安装教程:https://blog.csdn.net/chen15369337607/article/details/119272661

1.4 git配置

在使用Git时,需要进行基本配置,以便管理仓库和版本控制。以下是主要的Git配置项:

1.用户名和邮箱

Git使用用户名和邮箱来确定提交的作者,在使用Git前需要设置,可以通过以下命令设置:

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

2.编辑器

在使用Git时,经常需要编辑和提交文本信息,可以通过以下命令设置默认文本编辑器:

git config --global core.editor "vim"

在这个例子中,将编辑器设置为Vim。也可以将编辑器设置为其他喜爱的文本编辑器。

3.提交信息

提交信息是在Git中极为重要的,需要准确的提交信息描述每个提交的内容。可以通过以下命令设置提交信息模板:

git config --global commit.template ~/.gitmessage

这里是将提交信息模板设置为当前用户的主目录下的.gitmessage文件。

4.自动换行

在提交或合并时,Git可能会出现行尾换行符的错误。为了避免这种情况,可以设置自动将换行符转换为LF。

git config --global core.autocrlf input

这里设置core.autocrlf为input,表示在Windows中提交时,自动将换行符转换为LF。

二、git常见用法

Git是目前最流行的版本控制工具,常见用法包括:

可以参考git常见操作:Git使用教程,最详细,最傻瓜,最浅显,真正手把手教 - 知乎 (zhihu.com)

  1. 初始化一个Git仓库: git init (.git隐藏文件 它是Git用来跟踪和管理版本库的)

  2. 克隆一个远程仓库到本地: git clone [url]

  3. 查看当前文件状态: git status

  4. 添加文件到暂存区: git add [file]

  5. 提交文件到本地仓库: git commit -m “message”

  6. 查看提交记录: git log

  7. 回退到上一个版本: git reset HEAD^

  8. 撤销对文件的修改: git checkout – [file]

  9. 创建分支: git branch [branchname]

  10. 切换到指定分支: git checkout [branchname]

  11. 合并指定分支到当前分支: git merge [branchname]

  12. 推送本地分支到远程仓库: git push [remote] [branch]

  13. 拉取远程分支: git pull [remote] [branch]

  14. 删除远程分支: git push [remote] --delete [branchname]

  15. 撤销本地的一次提交并继续修改: git commit --amend

三、git与 svn的区别

Git是一种分布式版本控制系统,而SVN是一种集中式版本控制系统。

Git的工作方式是在本地仓库进行版本控制,可以在本地进行提交、合并、分支等操作,开发完毕后再将代码推送到远程仓库。Git具有分支合并、轻量级快照等优势,支持本地版本控制,可以有效地减少网络传输和服务器资源消耗。

而SVN则是将文件提交到中央版本库中,并且每一个人都是从同一个版本库中查看和记录修改历史。SVN具有中央仓库统一管理代码、版本控制历史记录清晰等优势,但对网络传输要求较高,不支持本地版本控制,需要频繁地与中央仓库进行交互。

Git-svn是使用Git对SVN仓库进行版本控制的工具,可以将SVN仓库的历史记录转化成Git仓库的提交记录,从而使用Git进行版本控制。Git-svn在SVN与Git之间进行桥接,可以在Git和SVN之间无缝切换,结合Git的分支、提交记录等功能,可以在SVN中使用Git的优势。

总之,Git和SVN都是版本控制工具,针对不同的应用场景和需求选择合适的工具有助于效率和团队协作。

git常见命令svn常见命令解释
git --versionsvn --version查看git or svn的版本
git initsvnadmin create初始化 git or svn仓库
git clone $urlsvn checkout $url 或者 svn co $url从远程仓库中克隆代码
git addsvn add新文件添加到git or svn
git statussvn status查看 git or svn 中的文件状态
git diffsvn diff
git diff $filesvn diff $file
git pullsvn update 或者 svn up一般说up一下就是update一下
git commit -m $commentsvn不支持本地commit,commit直接push到远程仓库
git pushsvn不支持本地commit,所以也不存在push的概念
git logsvn log | less直接使用svn log会直接打印所有log,如果commit很多的话就233333
git show $versionsvn diff -c $version查看某个commit的变更内容
git branchsvn copy查看 git or svn分支
git mergesvn erge合并 git or svn分支
git blamesvn blame查看 Git 中文件每行的修改情况

svn是分布式版本控制。svn本地保存的是远程仓库的镜像,没有本地仓库 or 本地分支的概念,所以每次commit都是直接提交到远程仓库。而git每次commit是对本地分支操作,即提交到本地仓库的某个分支,然后再将本地分支的修改同步到远程仓库。

四、git连接github

连接GitHub需要进行以下几个步骤:

4.1 创建一个新的仓库(Repository)

在这里插入图片描述

注意在远程仓库网站创建一个新的仓库,注意不需要建立README.md和.gitignore文件,因为一般clone下来的项目都含有这2个文件

4.2 生成SSH Key并添加到GitHub账户中

用以下命令生成SSH Key:

ssh-keygen -t rsa -C "your_email@example.com"

请添加图片描述

在这里插入图片描述

将生成的id_rsa.pub文件中的内容添加到GitHub账户的SSH keys中。

在这里插入图片描述

关联远程仓库

git remote add origin https://github.com/cxinay/Elegent.git

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

本地内容上传推送

  • 由于新建的远程仓库是空的,所以要加上-u这个参数
    git push -u origin master

  • 之后仓库不是空的,就不用加上-u
    git push origin master

五、github连接pycharm

5.1 配置PyCharm中的Git

在PyCharm中连接GitHub可以进行以下几个步骤:

  1. 配置PyCharm中的Git:

    启动PyCharm,点击【File】→【Settings】→【Version Control】→【Git】,选择Git可执行文件路径(系统安装git后此处会默认显示路径),点击【Test】,路径下会显示当前Git版本。

    在这里插入图片描述

  2. 配置PyCharm中的GitHub:

    点击【File】→【Settings】→【Version Control】→【GitHub】,点击【Log In via GitHub】

    在这里插入图片描述

  3. 授权GitHub给PyCharm:

    点击【Authorize in GitHub】,②登录GitHub,③输入收到的GitHub验证码,进行验证

    在这里插入图片描述

    验证通过后回到PyCharm中,选择GitHub账号,修改连接超时时间,点击【OK】

    在这里插入图片描述

  4. 建立远程仓库并提交代码:

点击【VCS】→【Import into Version Control】→【Share Project on GitHub】

在这里插入图片描述

  1. 填写仓库名及远程名,描述可不填写,若填写必须是英文,不可出现汉字、空格、符号及换行符,然后点击【Share】

    在这里插入图片描述

  2. 提交一段代码,点击提交按钮(快捷键Ctrl+K)→勾选需提交的信息→输入提交内容→点击【Commit】提交

    在这里插入图片描述

  3. 浏览器中登录GitHub查看仓库中的文件

在这里插入图片描述

5.2 PyCharm中分支管理

默认仅有master分支,点击右下角master分支,点击【+New Branch】新建分支

在这里插入图片描述

切换分支,点击右下角分支名称,选择要切换的分支,点击【Checkout】后,等待分支切换成功

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分支代码提交名push后,可合并分支,首先切换到要合并的分支上(此处切到master主线),点击分支名称,选择要被合并的分支,点击【Merge into Current】,等待合并成功

在这里插入图片描述

合并分支后,要切换到master将合并的文件推送到远程。

在这里插入图片描述

分支合并后即可删除分支,删除分支必须先切换到其它分支,如:共有master和dev分支两个分支,若要删除dev,必须先切换到master上,点击左下角Git,选择要删除的远程和本地分支,点击删除图标即可

在这里插入图片描述

如果您想将项目上传到GitHub上,可以使用PyCharm中的Git Gui工具,对文件进行add、commit以及push等基本操作。其中add和commit在Git Gui中的部分可以通过Pycharm的窗口直接完成,等同于在命令行操作。将修改提交到GitHub上,点击Git Gui的Push按钮即可

六、github常见操作

6.1 将GitHub的仓库Clone到远程

git clone https://github.com/cxinay/slinkyy.git

在这里插入图片描述

输入git init,进行初始化(初次连接时)

进入项目文件夹,连接远程仓库使用 git remote add origin 仓库地址 命令来将本地仓库与您的GitHub仓库关联。

在这里插入图片描述

这样就将仓库克隆到本地了,然后就可以进行开发操作,如添加、提交、推送变更等。当完成开发后,使用以下命令将本地的提交推送到GitHub仓库:

git add . 命令来添加所有文件。
git commit -m "commit message"
git push origin master

在这里插入图片描述

点开对应路径的文件

在这里插入图片描述

提交一段代码,点击提交按钮(快捷键Ctrl+K)→勾选需提交的信息→输入提交内容→点击Commit and Push提交

在这里插入图片描述

在这里插入图片描述

然后可以在远程仓库看见提交上去的代码

在这里插入图片描述

6.2 pycharm和Github多人协作

关联项目(github中的master分支下的项目)

在这里插入图片描述

关联项目网址复制进去,出现如下图:

在这里插入图片描述

在这里插入图片描述

提交一段代码,点击提交按钮(快捷键Ctrl+K)→勾选需提交的信息→输入提交内容→点击Commit and Push提交

在这里插入图片描述

在这里插入图片描述

七、git常见错误及解决

  1. 为远程仓库中有更新,需要先将远程仓库的更新拉取到本地进行合并,再进行推送

    error: failed to push some refs to [remote]
    

    解决方法是执行 git pull origin branch 命令,将远程仓库的最新内容合并到本地,然后再重新推送到远程仓库。

  2. 在进行分支合并时出现,表示两个分支没有共同的祖先节点,无法进行合并

    fatal: refusing to merge unrelated histories
    

    解决方法是在执行合并时添加 --allow-unrelated-histories 参数,例如 git merge branch --allow-unrelated-histories。

  3. 因为本地修改的文件与远程仓库中的版本冲突,无法进行合并

    error: Your local changes to the following files would be overwritten by merge
    

    解决方法是先将本地对应文件进行备份,然后执行 git pull origin branch 命令拉取远程仓库的更新,再将备份文件与更新后的文件进行比对和合并。

  4. 由于网络问题导致无法连接到远程仓库

    fatal: unable to access 'https://github.com/...': Failed to connect to github.com port 443: Connection refused
    

    解决方法是检查网络连接、代理设置,或尝试更换托管平台或使用SSH协议 进行连接。

  5. git push 不去远程更新问题,可能是因为在推送更新时出现,可能是因为本地仓库中的变更没有被加入到版本控制中

    解决方法是首先执行 git add 将变更文件添加到暂存区,再执行 git commit 提交变更,最后执行 git push 进行远程更新推送操作。

  6. 在提交或合并时,Git可能会出现行尾换行符的错误。为了避免这种情况,可以设置自动将换行符转换为LF。

    git config --global core.autocrlf input
    

    这里设置core.autocrlf为input,表示在Windows中提交时,自动将换行符转换为LF。

    7.无法启动握手

    	couldn't kickstart handshaking
    

    解决办法:

    ①检查网络是否正常,在【File】→【Settings】→【Version Control】→【GitHub】中修改Connection timeout连接超时时间

    ②检查GitHub中关联仓库是否被删除

    8.可能本地git仓库目录下为空,可能本地仓库add后未commit,可能git init错误

    error: src refspec master does not match any.
    
    error: failed to push some refs to 
    

    解决方法:用命令 git add + 文件名,把文件添加到仓库就行 ,然后正常push就好。
    换行符转换为LF。

    7.无法启动握手

    	couldn't kickstart handshaking
    

    解决办法:

    ①检查网络是否正常,在【File】→【Settings】→【Version Control】→【GitHub】中修改Connection timeout连接超时时间

    ②检查GitHub中关联仓库是否被删除

    8.可能本地git仓库目录下为空,可能本地仓库add后未commit,可能git init错误

    error: src refspec master does not match any.
    
    error: failed to push some refs to 
    

    解决方法:用命令 git add + 文件名,把文件添加到仓库就行 ,然后正常push就好。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值