[菜鸟笔记] Git 的使用方法 & 把专案推上 Github去

前言

这篇就是因为真的很不熟 git 的用法,感觉简单几个指令,但是每次要推都得再回去翻教案~
真的记不起来 http://img2.58codes.com/2024/emoticon02.gif

希望在这里整理一篇 git 的用法,以后就来看自己整理的笔记就好! 未来也会把每次遇到的相关问题统整在下面,看能累积到多少吧 (笑)


Git可以做什么呢?

大家是否有经验,写到一半发现整个错了,要回去改不知道从何改起?
但是如果有做版本控制,就跟玩单机版游戏一样存档回到之前的进度读取档案进入,就不怕啦~
对于共同协作也是一定要用的! 所以这个真的是必备技能!

记录各版本的差异git initgit addgit commitgit statusgit push切换版本rollback 回复到上一个版本 (git reset, git rebase)利用分支同时开发不同功能

程式码的三个阶段:

Untracked/Unstaged files 程式码还尚未被登录
使用 git add 推入到下一个阶段Staged files 程式码已被加到版本控制系统里
使用 git commit 提交程式码Commited 将程式码提交到 repository,储存到此就可以有版本记录
在过程中,可以使用 git status 来确认专案当下的状态

git 指令说明:

git init : 登录专案
创造一个 .git 的资料夹,保存着版本控制的所有资讯

git add : 登记更动,準备提交
后面加档案名称把档案登记起来 git add index.js 或是 git add .一次选出路径内的所有的档案

git commit : 建立版本节点
在这里,为了纪录改动的原因或重点方便日后自己或别人查看,要加上message来提交
message 也可以直接缩写成 m, git commit --m
git commit --message "change h1 color"

git status : 查看状态
使用 git status 指令来查看状态,这个指令会列出程式码不同的专案
并用颜色区分:
红色: 档案程式码有更动, 但是并未被登记
绿色: 档案已经登记,但尚未被提交
若已经提交的档案,就不会出现在这边啰~

http://img2.58codes.com/2024/20153933bLlFGtbICY.jpg

git log : 查看 commit 记录内容,由新到旧列出commit内容
每个节点都会带有SHA-1乱数、作者、提交日期、commit message
加上副指令,可以用 git log --oneline,变成列出纪录 commit 都是简化成单行呈现
SHA-1码是乱数40位生成,可以用前7码来缩写作使用

另外,我们加上另一个好用的工具 Source Tree 是图型介面版本的管理工具来做比对
觉得 终端机不太好用的人,可以使用 Source Tree 来管理也可以

http://img2.58codes.com/2024/20153933NyIytRpCCI.jpg

git diff : 查看变异内容,比较两者差异

如果指令不加任何参数,则会直接拿最新的版本和工作中的程式码做比对若要比对特定版本,需写成 git diff <SHA-1> <SHA-1>
e.g. git diff 1c8cef9 df99a2c

可以从同一张图看到,我前面也有用 git log --oneline 来查看commit 纪录
1c8cef9 前的 df99a2c 版本: 我增加了一些文字内容在html,commit "add greetings in different language"
1c8cef9 最新版本,我将这些刚新增的文字增加了颜色
如下图,他就帮我把有差异的比较内容列出来了~

http://img2.58codes.com/2024/20153933IbvGoDTig1.jpg

额外笔记一下 在纪录里常出现的 HEAD
HEAD 这个符号代表目前分支里最新的commit
现在因为预设的分支还是master, 所以可以看到上方的图片 HEAD 会指向 master

git reset : 重设版本

git rebase : 修改commits的呈现

将 Local Repository 推上 Remote Repository (github)

接下来 ~ 终于要来推上去 github了!
一起利用 git remote 来设定远端连线,再用 git push 推送分支到远端

在此之前,我们在 github 先来新增一个 repository
建立之后,会看到这个 repository页面, github 整理好的三种指令:
(1) 在 github 上直接建立一个全新的repository推上来
(2) 将本地现有的专案推到远端,这边也就是github
(3) 是从其他远端导入 repository

http://img2.58codes.com/2024/20153933yXMOAfJR5E.jpg

git remote add : 新增远端储存库
git remote add <name> <url>
此处的 可以自己定义名称,但是 则要参照 github 上 repository的名称
如上图,在这边就是 git remote add origin https://github.com/Cherylruei/backend_learning.git
origin 就是 ,我可以自己改个 first_projectgit remote: 不加上任何副指令,就可以查询远端储存库我推了 first_project 这个repositorygit remote -v: 可以列出更详细的清单,如下所示:
    first_project   https://github.com/Cherylruei/backend_learning.git (fetch)    first_project   https://github.com/Cherylruei/backend_learning.git (push)

git remote remove: 删除远端储存库
git remote remove first_project

git push: 推送分支

-M = Master 是要推送分支的名称,若没特别设定,此为预设名称。但是 github 2020年后 重新命名为 main,这就是第一行的用意origin 位置是要推送的远端储存库名称,origin是 github的预设名称,所以我需要修改为 first_project
  git branch -M main  git push -u origin main

修改成

  git branch -M main  git push -u first_project main

输入以后,会跳出画面要你输入 github的 username 和 password
我虽然知道 password 被停用了,还是一开始不小心照输入密码......
果然跳出下方截图错误

http://img2.58codes.com/2024/20153933pWPAv17bVk.jpg

我就直接複製里面错误内容google,就有人说密码停用,这边要直接输入 personal access token,而不是之后还会跳出一个视窗让你输入这个 token

前面几次推送错误没纪录到,但都是把错误内容贴google搜到的,而且很快就能找到答案~


另外小笔记: 忘记怎么在终端机複製贴上?
git bash copy and paste:
copy: Ctrl + insert
paste: Shift + insert


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章