新手必看:Git分布式版本控制与GitHub协作全攻略

        你是否经历过这样的绝望:熬夜写完的代码被误删,想找回却无计可施?和新同事协作时,他的修改直接覆盖了你三天的成果,项目瞬间崩盘,你却连是谁改的都不知道?又或者,你想为项目添加一个新功能,却生怕把原本稳定运行的版本搞砸?

        如果你点头了,那么恭喜你——Git,正是为你解决这些问题的“后悔药”与“时光机”。作为当今最强大的分布式版本控制系统,Git不仅能帮你精确记录每一次文件变动,让你在任意版本间自由穿梭,更是团队协作的基石。

        然而,对于新手来说,Git那抽象的工作区和暂存区概念、动辄十几个参数的命令,确实像一堵高墙。别担心,这篇文章正是为你打破这堵墙而生。我将带你从零开始,用最通俗易懂的语言和实战命令,一步步掌握Git核心操作,并打通与GitHub远程仓库的协作全流程。无论你是学生、开发者还是技术爱好者,跟着这份攻略走一遍,你将从此告别“代码丢失恐惧症”,自信地驾驭你的项目。

git分布式控制系统

github远程仓库

cmd命令

查看文本文件内容:type 文件名
删除文件:del
删除文件夹啊:rd

修改管理类

修改文件

cmd
变仓库:git init #文件多了.git文件——版本库
创建文件
添加文件到仓库(暂存区stages):git add 文件名 #添加多个空格分开
提交文件到仓库:git commit -m "说明内容" #全部提交,-m相当于添加注释
每次修改都要重复以上完整操作
git commit提交更改暂存区的所有修改提交到master分支

查看

查看仓库状态:git status #modified:需要提交的修改
查看具体修改内容:git diff 文件名 #红色原内容、绿色现内容
查看工作区和版本库里面最新版本的区别:git diff HEAD -- 文件名 # 有输出说明有未提交改动
查看以往操作命令:git relog #可以得到commit id

查看修改历史:git log #显示-m后的说明内容,乱码是commit id
如果嫌输出信息太多加上--pretty=oneline参数

回溯

回到之前的版本:git reset --hard HEAD^
^是上一个版本,^^是上两个版本
也可写成HEAD~100,上100个版本,推荐这种写法
HEAD是当前版本

通过commit id(一般写前几位)git reset --hard 1094a(例)也可以回溯到后面的版本
撤销暂存区修改:git reset HEAD <文件名>

--hard会回退到上个版本的已提交状态(一般使用这个)
--soft会回退到上个版本的未提交状态
--mixed会回退到上个版本未添加

撤销修改

💡

从来没有被添加到版本库就被删除的文件,是无法恢复的!

丢弃工作区的修改:git checkout -- 文件名

删除

先手动删除
git rm 文件名 #功能与git add文件名差不多

远程仓库

github仓库可以作为备份,也可协作

  1. 登陆GitHub,打开“settings”,点击“SSH and GPG Keys”,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴C:\Users\Administrator\.ssh\id_rsa.pub文件的内容

    查看是否存在:dir %USERPROFILE%\.ssh
    ssh-keygen -t rsa -C "邮箱"
  2. 创建SSH Key(git bash):
  3. 勾选Initialize this repository with a README,自动我们创建一个README.md文件

查看远程仓库命令:git remote -v

添加远程仓库

  1. 右上角找到+按钮,点击new repository
  2. name填入文件名
  3. 关联命令:
git remote add origin git@github.com:Github账户名/仓库名.git

远程库的名字为origin(在.git/config里)

4.本地库的所有内容推送到远程库:

git push -u origin master
第一次推送要加-u,
目的:
把本地的master分支内容推送到远程新的master分支
把本地的master分支和远程的master分支关联起来

后续上传命令(去掉-u):

git push origin master

删除远程仓库

1.

    git remote rm 仓库名

    2.在github网站删除

    远程仓库克隆

    git clone git@github.com:Github账户名/仓库名.git

    多人协作开发时每人克隆一个

    分支

    在不影响已上线的功能情况下开发新功能,避免不可逆转的局面

    主分支可以独立运行

    将未push的分支整理为直线:git log --graph --pretty=oneline --abbrev-commit

    1.创建分支:

    git checkout -b 分支名(一般为dev)
    git switch -c 分支名

    2.查看当前分支:

    查看分支合并图:git log --graph

    git branch
    * 表示当前分支
    
    git log --oneline --graph

    3.上传流程和master一样

    4.切换分支:

    git checkout -b 分支名 #未创建
    git checkout 分支名
    
    git switch -c 分支名 #未创建
    git switch 分支名 #已创建

    5.合并分支:

    Git默认Fast forward模式合并分支时可能丢失分支信息

    不想删除合并时添加添加--no-ff参数

    merge成功自动提交,merge失败不提交

    git merge 分支名

    6.删除分支:

    git branch -d 分支名
    强行删除:git branch -D 分支名

    当前分支:<<<<<<<

    分割:=======

    合并分支:>>>>>>>

    💡

    发生冲突时再次添加提交可以合并

    Bug分支

    创建分支来修复bug

    存储未完成工作:git stash #可以存储多次
    查看已存储的未完成工作:git stash list
    删除存储内容:git stash drop
    
    恢复存储内容(不删除):git stash apply
    有多个存储内容时git stash apply 存储编号
    恢复并删除存储内容:git stash pop.
    
    把某个提交的操作复制到当前分支:git cherry-pick commidID

    分支多人协作

    查看远程库信息:git remote
    查看远程库详细信息:git remote -v #没有推送权限,就看不到push的地址
    
    将本地提交推送到远程仓库:git push 远程仓库名(origin) 分支名

    抓取分支:

    远程克隆:git clone git@github.com:账户名/仓库名.git
    抓取最新提交:git pull #失败则说明本地和远程未链接
    git pull失败:git branch --set-upstream-to=远程库名(origin))/本地分支名 本地分支名

    标签

    在需要打标签的分支上:git tag 标签名 #打在最新提交上
    如果要给标签指定说明:git tag -a 标签名 -m "说明内容" commitID
    查看标签名:git tag
    给历史提交打标签:git tag 标签名 commitID
    查看标签信息:git show #按字母顺序排序
    
    删除标签:git tag -d 标签名
    删除远程标签:
    先删除本地标签
    再删除远程标签:git push origin :refs/tags/标签名 #冒号后是标签路径
    
    推送标签到远程:git push origin 标签名
    推送所有标签到远程:git push origin 标签名

    使用github

    fork创建克隆仓库,clone下载

     至此,你已经完成了从Git小白到能独立协作开发者的蜕变!

    我们从一个文件的修改开始,逐步建立版本库,穿梭于时空之间;接着,我们登陆GitHub,学会了如何将本地代码安全地备份到云端,并与他人共享;最后,我们涉足了Git最强大的分支管理领域,掌握了并行开发、紧急修复Bug以及多人协作的标准流程。

    这些操作和命令并不是死记硬背的“咒语”,而是你驾驭代码世界的“工具箱”。在未来的编程道路上,git statusgit log将成为你最常使用的“眼睛”,而addcommitpushpull将成为你与团队协作的肌肉记忆。

    当然,Git的海洋远不止于此,还有更高级的钩子(Hooks)、子模块(Submodule)和交互式变基(Rebase)等待你去探索。但请相信,有了今天打下的坚实基础,你将能轻松理解并掌握它们。

    最后,送给你三句心法:

    1. 多提交,勤推送 —— 不要怕commit太多,这是你安全的“存档点”。

    2. 遇到冲突莫慌张 —— 冲突不是bug,是沟通的契机,细心阅读冲突标记并解决它。

    3. 不熟悉的操作,先在测试仓库中练手 —— 放心大胆地尝试,错了就git reset,大不了重新克隆。

    现在,就打开你的终端,从git init开始,亲手建立一个属于你自己的仓库吧!如果在实践过程中有任何疑问,或希望了解更深度的技巧,欢迎在评论区留言,我们一起交流成长。祝你在版本控制的世界里,游刃有余,尽享编码的乐趣!

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值