git与github

Git的三个区域概念#

Git有工作区、暂存区和版本库的概念#

工作区 - 就是电脑能看到的目录;

暂存区 - 英文叫stage或index。一般存放在.git目录下的index文件中,所以我们把暂存区有时也叫作索引(index)。

版本库 - 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

对github进行本地认证#

完成这一操作之后,如果以ssh链接从自己帐户的repository中clone到本地,那么从本地push到github上就不需要输入帐户密码了。

生成SSH Key#

输入命令ssh-keygen -t rsa,会生成密钥文件,id_rsa.pub是公钥,密钥文件默认存在home/user/.ssh文件中(Windows默认存在C:/Users/user/.ssh)

添加gitHub的SSH密钥#

  1. 登录GitHub账户

  2. 打开Setting

  3. 找到SSH and GPG

  4. 选择SSH Keys

  5. 选择 New SSH Key

  6. 将id_ras.pub的内容粘贴到Key栏

检查是否配置成功#

添加SSH Key后,在本地终端输入命令ssh -T git@github.com查看是否认证成功。

Git的命令和操作#

可视化学习教程#

learngitbranching

简单的操作#

查看当前工作区的状态git status

将修改后的文件添加至暂存区 git add <file>

提交修改 git commit -m "commit reason"

查看git日志 git log

查看某次commit的详情 git show commit_id

修改提交人的基本信息 git config --global user.email "xxxxx@xxx.com" git config --global user.name "name"

回滚状态 git reset commit_id

分支branch#

创建分支 git branch branchname

切换分支 git checkout branchname

创建并切换分支 git checkout -b branchname

查看本地分支 git branch,带*号的是当前分支

查看远端分支 git branch -r

查看所有分支 git branch -a

查看本地分支与远端分支的关联情况 git branch -vv

删除本地分支 git branch -d <branch-name>

远端分支被删除后,清理本地的远端记录 git remote prune <remote-name>

修改当前分支的分支名 git branch -m new_name,如果new_name被占用,则需要-M参数来强制执行。

git的默认分支是master,原先github的默认分支也是master。但是2020年10月开始,github的默认分支变成了main。因此将本地分支与github默认远程分支关联前,需要将本地分支重命名为main。

版本tag#

再当前代码状态新建版本标签tag git tag v1.0

查看历史tag记录 git tag

切换到某个tag git checkout v1.1

push and pull#

如果是本地已经有了一个git项目,则需要设置remote。其中<remote-name>可以任意设置。
git remote add <remote-name> <remote-url>
如果是从远端clone下来的,会有一个默认的remote。

在执行git fetch git push git pull等命令之前,需要为所在分支关联远端分支。

分两种情况进行关联:

  • 与一个现有的远端分支关联
    执行git fetch,这个命令会获取远端的所有分支。在本地创建同名分支(如果还没有),将远端分支merge到本地分支。然后执行git push -u
    如果merge时报错:fatal: refusing to merge unrelated histories,则增加--allow-unrelated-histories选项。
  • 不与现有的远端分支关联
    执行git push -u <remote-name> <local-branch>会在远端创建一个分支,与本地分支关联,并push本地内容(-u--set-upstream / --set-upstream-to的缩写)。如果该远端分支已存在,则不会创建新的分支。

完成关联后,以后就可以直接执行git fetch git push git pull等操作了。

分支合并#

一般项目开发中不会直接在主分支上做修改,而是创建一个分支,在分支上修改,测试通过后再merge到主分支上。将本地代码push到远端之前,需要先进行fetchmerge(等价于直接pull)。

  • 先切换到master分支。
  • git pull与远端进行同步。
  • git merge branch1命令将branch1合并到master
  • git push将修改推到远端。

杂乱的问题#

git clone时选择了https链接,导致每次git push时都需要登录验证。
解决办法:

  1. 创建一个remote,这个可以取任意名字,一般取origin或upstream。
    git remote add <remote-name> <remote-url>
  2. 查看所有remote
    git remote -v
  3. 删除原有的https remote。
    git remote rm <old-remote>

作者:yuxiayizhengwan

出处:https://www.cnblogs.com/yuxiayizhengwan/p/15070428.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   雨下yi整晚  阅读(89)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示