Git与Github基础详解和常用命令 快来打我* 2024-03-29 16:07 25阅读 0赞 ## Git简介 ## Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git 仓库分为两种: * 本地仓库:开发人员自己电脑上的Git仓库 * 远程仓库:远程服务器上的 Git 仓库 操作: * commit:提交,将本地文件和版本信息保存到本地仓库 * push:推送,将本地仓库文件和版本信息上传到远程仓库 * pull:拉取,将远程仓库文件和版本信息下载到本地仓库 ![6950e154087f49cdbe3420826ba95f6d.png][] ### 版本库、工作区、暂存区 ### * 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等(.git文件夹) * 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码(包含.git文件夹的文件夹) * 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方 ![0e6ba1f77894400aaf3ac6e7743d9a0e.png][] ### Git工作区中文件的状态 ### 可以用下面指令查看当前仓库文件状态 > git status Git工作区中的文件存在两种状态: * untracked 未跟踪(未被纳入版本控制) * tracked 已跟踪(被纳入版本控制) * 1)Unmodified 未修改状态 * 2)Modified 已修改状态 * 3)Staged 已暂存状态 ## Github ## Git代码管理平台,可以在上面创建远程仓库,并将其他成员邀请成为自己的仓库成员 ## Git和Github区别 ## Git是一个运行在你电脑上的版本控制软件,而Github是基于Git这个版本控制软件打造的网站。 ## Git的commit、repository、branch概念 ## 提交commit:一次提交就是一个版本,就有一次记录。每次当写错代码的时候可以回滚到以前的版本。相当于写文章的时候不小心删错或者怎么样的操作,可以ctrl+z给我们一次改正的机会,肥肠人性化呀~ 仓库 repository:每一次的提交的代码都会保存在这 分支 branch:相当于一个项目中不同的人写不同的部分,每个人就代表着自己的一个分支,最后合成就是完整的。又或者说是把当前工作从开发主线上分离开来 ## 安装 ## 1.首先要在Github上注册一个账号 2.下载git,网址: [Git for Windows][] 3.下载好后可以在开始菜单,或者鼠标右键桌面可以看到 ![0c3379c57b804870b6fa10a2ac651e75.png][]![80d28eb0a65d44e5bc8dce8c5b51e780.png][] ## 配置git用户信息 ## 1.打开Git Bash,输入下列信息 > git config --global user.name "你的用户名" > > git config --global user.email "你的邮箱" ![969458ff7392442cb791c394f432acc5.png][] ### 查询用户信息 ### 查询特定用户信息 > git config --global user.name > git config --global user.email ![cd1eb2a58cf643709fb92df6634290d9.png][] 查询全部用户信息 > git config -l ![52df7e5eb53a4c1d92886e3933f3df2e.png][] ### 删除全局配置 ### > git config --global --unset user.xxx ## Git克隆项目 ## 1.找到你想要下载的项目按照以下复制他的URL。(也可以直接在下面download他的文件) ![fe9141b4812f4774a7bb8a93ccacdb21.png][] 2.在创建好的项目中右键打开GitBash ![a63e10eda47540dfa927b5fddb5790d3.png][] 3.初始化项目(通常是本地初始化一个仓库并创建一个分支,不会关联远程仓库,如果是只是拉取人家的文件就会自动关联仓库,因此这步大部分情况可以省去) 目的是让该项目成为master项目并具备git的能力。 ![bd144d1d70e449c1a0365cf6127649dd.png][] > git init 出现这个即创建成功 ![1eb6298d0b0246678dc6c848bf9140d0.png][] 4.载入项目 当出现100%即克隆成功了 > git clone 地址 ![cbf5addae2b244c5a28d47c98a0a3132.png][] 如果出现了“fatal: unable to access 'https://github.com/\*/\*.git/': Empty reply from server ”的错误![80c5c5c1cd9b40aeb840923ead7cf397.png][] 大概率是需要开启代理,因为github时好时坏。也可以用下面的SSH来进行下载,但URL就得改成SSH的复制即可 ### SSH密钥配置 ### 密钥的配置是为了帮助我们在通过git提交代码是,不需要繁琐的验证过程 ### 查看是否存在SSH Key ### > cd ~/.ssh 进入到ssh目录 > > ls 展示单条 > > ll 展示全部 存在 id\_rsa 和 id\_rsa.pub文件说明已经有SSH Key ![af2987efe28d4f97848604e1332e7e88.png][] 1.找到Git GUI的位置,进去找到SSH Key进行复制,再到网址处进行配置即可 ![806b30393d9a4e4db76b6e546b453efe.png][] ![d2230bad397f477a8bace7315563a645.png][] ![416c6aa178a247769f65cd1fa0a3e534.png][] ![67fca4b4de8c48eda6713fc5376f79b9.png][] ![842bcdb8375549e3a2551b34d20c5143.png][] ## 分支Branch操作 ## > git branch 查看所有本地分支 > > git branch-r 查看所有远程分支 > git branch-a 查看所有本地分支和远程分支 > git branch <name> 创建分支(只是在本地仓库有这个分支) > git checkout <name> 切换分支 > git push <shortName> <name> 把分支推送到远程仓库 > git merge <name> 合并分支 第一个b1是本地仓库的分支,第二个b1是远程仓库分支 ### ![70d9a84ab8264b11a60becdb0a7d6731.png][] ### ## 回退到某次提交 ## 1.查找自己某次提交的时间对应的id > git log 2.回滚 commit-id 是 git log 中找到的 id > git reset --hard commit-id ### 开发新功能时,需要切换另一分支修复 bug,又不想提交当前分支代码怎么办 ### 1.git stash > `git stash` git 会将当前代码以栈的形式缓存。 > `git stash apply` 当 任务修改完后,切换回 A原来分支,只需要使用 以上代码将暂存区的数据进行恢复 2.git add > git add 将文件修改放入缓存区 ## 合并多个commint ## 1.查看log的历史,寻找想要合并的id > **`git log --oneline`** ![318d5d41c8b947a3917d47c5f0bd6007.png][] 2.合并历史commit > \# 从 HEAD 版本开始往过去数 5 个版本 > $ git rebase -i HEAD~5 > > \# 合并指定版本号(不包含此版本) > $ git rebase -i \[commitid\] 其中的操作 * `pick`:使用此提交不做操作 * `squash`:将指定的提交合并到上边的pick请求中,保留提交信息(如果需要修改注释,则使用此方法) * `fixup`:与 `squash` 类似,但不保留提交信息(如果不需要修改注释,则使用此方法) 例子: 选择要合并的五次提交 ![424a6ed401e142ca8efc8e5be39904b6.png][] 使用fixup合并 ![0f9a29b1d00346cda070f63b974ac1dc.png][] 3.然后:wq保存退出后是注释界面,合并完成 4.推送远程仓库或合并到主干分支 > git push --force origin master ## 远程仓库操作 ## > * git remote 查看远程仓库 > * git remote -v 查看详细远程仓库 > * git remote add <name> <url> 添加远程仓库 > * git clone 从远程仓库克隆(完整的详细数据) > * git pull 从远程仓库拉取 > * git push <远程仓库别名> <远程的分支> 本地仓库推送到远程仓库 使用git remote出现以下则是关联到了远程仓库(通常是如果是本地仓库需要连接) ![43e38ab0bc3a4ddd8cdd78ffd1eec988.png][] 指的是一个分支 ![af93ae6e2ed7434e964225b459433f9a.png][] ### 本地仓库提交到远程仓库 ### 1.查看是否连接到了远程仓库 > git remote 连接远程仓库(如果如果没连接成功) > git remote add <本地仓库名> <github地址> git remote add gb git@github.com:kkoneone11/Simple-.git ![9042cf5da43543089a691e66dfc834f3.png][] 2.在本地创建了一个test.txt文件,但这个时候只是创建了,并没有去给git管理 ![152a7fa96e574436bd6224a87c622d86.png][] 3.放入缓存区 ![8fd72d60b2e64f1f8ce179361f5ae6f5.png][] 4.将test文件放入本地仓库,得先放入本地仓库才能放到远程仓库 ,\*是指全部文件。 > git commit -m "" 引号中的是log的提示信息,表示这步操作做了什么 ![087d39c1692447108fdf20f527dbf7c3.png][] 5.推送到远程仓库 > git push <远程仓库别名> <远程的分支> ![c947e1e7d91640138f43ce10297e8053.png][] ### 从远程仓库拉取 ### 1.从远程仓库拉取 > git pull <远程仓库别名> <分支名> Already up to date是没有版本有更新 ![d0ab1a862e8942cfa88893b271cdb7c6.png][] **注意**:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories) 解决此问题可以在git pull命令后加入参数--allow-unrelated-histories ### 本地仓库拉取远程仓库分支 ### 1.初始化本地文件夹 > git init ![49d2ede95de04779a1488d3191f2164b.png][] 2.连接远程仓库 本地仓库名通常习惯用origin > git remote add <本地仓库名> <github地址> git remote add gb git@github.com:kkoneone11/Simple-.git (HTTPS也可以的) ![9042cf5da43543089a691e66dfc834f3.png][] ![074d4a527bb340a5b231f57ca2ba8383.png][] 3.查看分支 > git branch -a 4.拉取 > git pull <远程仓库名> <分支名字> ![2b00cfd717074ba4a39341f0d94defe8.png][] 参考自: [git 常见问题 10 问 - 掘金 (juejin.cn)][git _ 10 _ - _ _juejin.cn] [Git-06-Git常用命令\_远程仓库操作1\_哔哩哔哩\_bilibili][Git-06-Git_1_bilibili] [6950e154087f49cdbe3420826ba95f6d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/31129a978e3241a7a4f8420aee13c7e4.png [0e6ba1f77894400aaf3ac6e7743d9a0e.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/af782bef43e342ed970d930e25b7dfb5.png [Git for Windows]: https://gitforwindows.org/ [0c3379c57b804870b6fa10a2ac651e75.png]: https://img-blog.csdnimg.cn/0c3379c57b804870b6fa10a2ac651e75.png [80d28eb0a65d44e5bc8dce8c5b51e780.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/3bb9f8ed576c43a8bd8c7357d6c57bd9.png [969458ff7392442cb791c394f432acc5.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/ef033abb1b3e4d58bb8caeb5a4748516.png [cd1eb2a58cf643709fb92df6634290d9.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/fa20ac9da273401b8ce0f010ad68346d.png [52df7e5eb53a4c1d92886e3933f3df2e.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/dcf5b49ef43e44f2bb65da5329e1c042.png [fe9141b4812f4774a7bb8a93ccacdb21.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/ee88627ed73e42e69ab390b7b5fcd5e1.png [a63e10eda47540dfa927b5fddb5790d3.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/c3d0c89a8525413b8a9bd8a590df2f46.png [bd144d1d70e449c1a0365cf6127649dd.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/ba4ffaaf5ef742e48e064466d15109dc.png [1eb6298d0b0246678dc6c848bf9140d0.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/873b48f0775645bf9436e9ab81f28b5f.png [cbf5addae2b244c5a28d47c98a0a3132.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/df71b83d7cc243328ab45171af466c4b.png [80c5c5c1cd9b40aeb840923ead7cf397.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/a1f0e1631b6c4dc495f7f5cba9caf9f5.png [af2987efe28d4f97848604e1332e7e88.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/583e21da3a8c426ba973be8f0e0ab6bd.png [806b30393d9a4e4db76b6e546b453efe.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/59cfce22d1124274b0932ce62bb423c0.png [d2230bad397f477a8bace7315563a645.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/a0d32d2d04cf41158a1e666c92002c08.png [416c6aa178a247769f65cd1fa0a3e534.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/bacc1db28575492e99e1a41665e69260.png [67fca4b4de8c48eda6713fc5376f79b9.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/ae39395e4e1344b090b86fe36db210a1.png [842bcdb8375549e3a2551b34d20c5143.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/d170dbd990654e6db8e287b5401db999.png [70d9a84ab8264b11a60becdb0a7d6731.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/fbebe46f55c74dd7b9127a5de8ca3399.png [318d5d41c8b947a3917d47c5f0bd6007.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/5894e50f17144dfcb192ceb8fc2ec3ff.png [424a6ed401e142ca8efc8e5be39904b6.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/21b73f8fa1af4a0da6e4f79919ce8ba8.png [0f9a29b1d00346cda070f63b974ac1dc.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/40b60f97bc3c45d7a6c78cddc85f7bdf.png [43e38ab0bc3a4ddd8cdd78ffd1eec988.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/11528177630e4ff6b1b79d2d0a02dd10.png [af93ae6e2ed7434e964225b459433f9a.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/86aee0962dd7431e863c78cee59b9059.png [9042cf5da43543089a691e66dfc834f3.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/b69e5ea426ca4ed0ab5b923054cd8a68.png [152a7fa96e574436bd6224a87c622d86.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/59b16afe0a964e198d4ebe41c4caf6bb.png [8fd72d60b2e64f1f8ce179361f5ae6f5.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/4420e2e91bb84a3983999f46471605e9.png [087d39c1692447108fdf20f527dbf7c3.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/366f94dce8414368ab67702776de618e.png [c947e1e7d91640138f43ce10297e8053.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/32a5f82812f64a99b679c098dc8f969b.png [d0ab1a862e8942cfa88893b271cdb7c6.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/bd017babd456466f952dd55028cd086e.png [49d2ede95de04779a1488d3191f2164b.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/3c576f26b9bd4a3d923fcc86a29857cb.png [074d4a527bb340a5b231f57ca2ba8383.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/04add83edc0c4648ba1a26859198ff94.png [2b00cfd717074ba4a39341f0d94defe8.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/28/6055ded1eb834c48ba15e96637f839ea.png [git _ 10 _ - _ _juejin.cn]: https://juejin.cn/post/7188448046374453304#heading-13 [Git-06-Git_1_bilibili]: https://www.bilibili.com/video/BV13a411q753?p=109&spm_id_from=pageDriver&vd_source=ff82c974c9619da58d1adcce4e092f03
还没有评论,来说两句吧...