【待修】Git和GitHub学习笔记
主要参考资料:
Python编程 (豆瓣) 附录D 使用Git 进行版本控制
Getting to Know the Command Line
Linux Survival | Where learning Linux is easy
MAN PAGES 使用手册
Git/GitHub教程:Github 简明教程、GotGitHub-蒋鑫、Git教程-廖雪峰、Pro Git-第二版中文版
基本命令:
配置git:
引号中内容改为自己实际的用户名、邮箱
git config --global user.name "user.name"
git config --global user.email "username@example.com"
项目文件夹下创建.gitignore文件写入需要被git忽略的文件和目录
初始化仓库:git init
会在项目文件夹下生成.git文件夹
检查状态:git status
将文件加入仓库中:
git add .
git status
add .
将项目中未被跟踪的所有文件君加入仓库中
执行提交:
git commit -m "提交信息"
git commit -am "提交信息"
-a参数使git将所有被修改的文件加入当前提交
查看提交历史:
git log
...
git log --pretty=oneline
--pretty=oneline
指定显示提交的引用id、提交记录信息
撤销修改:
git status
...
git checkout .
git status
git checkout .
放弃最后一次提交后所有的修改,恢复到最后一次提交时的状态。
检出以前的提交:
git log --pretty=oneline
...
git checkout ee7641
通过引用id的前6字符,检出提交历史中的任一提交。git checkout master
可回到master分支。
如果是个人项目,可以使用以下命令,永久回退到之前的提交版本:
git status
...
git log --pretty=oneline
...
git reset --hard ee76419
git status
git log --pretty=oneline
删除仓库:
可以直接将.git文件夹删除或通过命令行删除
git status
...
rm -rf .git
远程仓库分支合并
可以git clone 仓库地址
后git branch -r
查看远程仓库分支,然后git checkout 分支名称
切换分支,之后修改、提交,再git push推送到远程仓库分支下。
最后在远程仓库平台发起合并请求。指派人(assignee):项目负责人,具有合并权限。 审核者(reviewer ):选择开发者自己之外的另一个开发者。
windows命令行[win10] 中man <command>似乎无效,可使用help<command>,如: help cd 命令之间注意空格
FC(file compare)比较文件差异,先进入需要比较的两个文件所在目录(两文件的路径需一致):
:
启动程序: "E:\Program Files\Sublime Text 2\sublime_text.exe"
Sublime Text,一种简单文本编辑器,在 Windows、Mac 和 Linux 上都能运行。
1.把执行文件添加到PATH(在环境变量中设置)中
2.在程序目录中新建一个批处理文件subl.bat,写上
@echo off start sublime_text %1之后可以在命令行中使用 subl . 或 sublime_text . 打开sublime text2程序。
windows底下怎么让cmder通过输入subl去打开sublime text (未测试)。
打开E盘的目录,先 E: 从默认目录转到E盘然后 cd version-control 进入version-control目录
以下内容属于bash命令
$ alias subl='/e/Program\ Files/Sublime\ Text\ 2/sublime_text.exe' Git for Windows中Git Bash执行此命令后,可直接使用 subl 启动sublime程序。alias,别号。
cd ~ # 更改目录 directory mkdir version-control # 创建 version-control 目录 cd version-control # 转到 version-control 目录 mkdir reflections # 创建 reflections(思考)目录 cd reflections # 转到 reflections(思考)目录 subl lesson_1_reflections.txt # 启动 Sublime Text,并打开名为 lesson_1_reflections.txt 的文件
pwd # 打印工作目录 - 显示你所在的目录 ls # 列出此目录中所含的文件
使用短行
如果文件包含很长的行,则会降低许多命令行工具(包括 Git)的实用性。 例如,如果使用 diff
比较两个将所有内容都放在同一行上的文件,则 diff
只会显示这两个文件是不同的文件,而无法指出哪里不同。
因此,在编写反思文件或其他纯文本文件时,确保每行长短适中是一种好做法。将行限制为多长是个人喜好问题。 许多开发者都将行限制为不超过 80 到 120 个字符。 有些编辑器能自动插入换行符,但在 Sublime 等其他编辑器中,如果想另起一行,请记得按下 Enter。
提交频率
为每项逻辑更改进行一次提交是很好的经验法则。例如,如果改正了一处打字错误,然后在文件的另一部分中改正了一个错误,则应为每项更改进行一次提交,因为这两项更改在逻辑上是独立的。如果这样做,每次提交都将具有一个易于理解的目的。Git 允许你在每次提交时都编写一条简短的信息来说明更改了什么。如果每次提交都包含一项逻辑更改,这条信息会更有用。
输入提交 ID
如果输入提交 ID 的前四个或更多个字符更为轻松,则你可以这样做,而不必粘贴整个 ID。
Git 常用命令 ,MindMapper 2009,思维导图软件。
git add . 向本地仓库Index(Stage)添加当前目录下所有(未隐藏的)文件/文件夹路径
· git add -A 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git commit -m "代码提交信息" 改动提交到本地库的HEAD
git push origin master 将改动推送至远端仓库,master是默认的主分支。
git diif commit_ID1 commit_ID2 比较两个提交之间的差别 + 表示添加的内容 - 表示删除的内容
git log stat 每次提交所更改的文件统计数据 中途按q则停止统计
git checkout commit_ID 检出某提交
$ git clone https://github.com/udacity/asteroids.git # clone保存地址默认当前路径,故clone前注意使用 cd 命令转到所需路径 Cloning into 'asteroids'... #‘asteroids’小行星 remote: Counting objects: 209, done. remote: Total 209 (delta 0), reused 0 (delta 0), pack-reused 209 #delta,[Unix] 微小差异 via http://foldoc.org/delta Receiving objects: 100% (209/209), 191.54 KiB | 119.00 KiB/s, done. #git clone中delta的意义参考链接 Resolving deltas: 100% (127/127), done.
GitHub小技巧
使用github.dev查看文件
打开一个http://github.com仓库的主页,用键盘输入一个点(半角.),就会打开一个web editor页面(vs code web ide)。在这个web ide中,可以像在本地版vs code一样修改文件、保存文件,甚至可以提交修改,在左侧的source control(ctrl + shift + G)选项中,可以直接把修改情况commit回github。