Git beginner
Git 教程
[toc]
概念
仓库; 分支; 本地仓库; 远程仓库; 提交; 拉取; 推送; 工作目录; 暂存区; 标签; head 指针; 合并;
repository; branch; local repository; remote repository; commit; pull; push; work directory; cache; tag; head pointer; merge
vcs(version control system); scm(source code management )
从版本控制的需求出发,理解这种工具背后的思想方法.
去中心化的版本控制系统, 只要想要控制版本,多人协作.就需要查看不同版本,掌握进度, 合并版本.
工具有 subversion (svn) cvs mercurial(hg) git
1 |
|
常用的命令
init; clone; add; commit; pull; push; fetch; branch; checkout; config; log; status; remote;
代码托管平台
git 是协作工具,代码托管平台;
国外
- bitbucket
- GitHub
- gitlab
国内
- coding
- 码云 gitee
- gitcode
参考文献和教程
自带的
1 | git help |
网站
廖雪峰 的班组
pro-git 中文手册
GitHub 上的帮助文档,
Microsoft Learn 上也有git 的学习教程,边学习边练习.
基本 Git 命令 - Training | Microsoft Learn
网络上随便搜索都有教程.码云的帮助页面一堆,但是质量良莠不齐.
在学习这个工具之前,其实可以先从需求来思考,本身git 的很多操作方式只是自己的一套体系,当明白这些操作的目的是干什么的,就更容易把握.整体来看待.
创建一个项目; 然后开始工作; 一个人的话可能多台设备,需要进行进度协作. 一个人一台设备.只是考虑的备份和新旧版本的查看.不行就自己手工管理.需要每次版本更新留档记录. 两人或两台设备以上就需要考虑冲突问题. 远程仓库就是一个主要仓库,其实感觉上是两个分布式的仓库,同时都有工作进行.然后一个仓库算是远程的,用来备份的.然后两边各自开展还好,如果有同一个文件进行了修改,那就会发生冲突.或者两边的工作没法合并了.需要你时刻和远程仓库更新,两个仓库合并.
图像化的工具值了的
git; tortoise git; visual studio code 插件 git history gitgraph ; git kraken;
配置
1 | git config --list # 查看已有配置 |
关于 .gitignore
文件的配置
GitHub
的配置文件夹 .github
里边有关于 workflow 工作流的配置
vscode 的配置文件夹 中有关于 task.json run.json. 等等.
另外配置文件一般是json,toml.等等.yml也可以.
和GitHub 进行密钥绑定等等.这个工作看GitHub 文档 ssh 链接.网络可能不太好.
coding或者码云试试
创建仓库
1 | git init |
1 | git clone git@github.com:username/repositoryname.git |
1 | git log -p # 查看内容 |
创建分支
1 | git branch [branch name] # 新建分支 |
在不同分支进行不同的工作,然后合并分支,git tag version 标记版本.
协作
可以考虑两台电脑自己体验这个协作的流程
主分支 main 远程仓库
thinkbook: leeqh98 用户
thinkpad: liqh98 用户
在GitHub上使用时,可以考虑使用 gh 工具来完成,然后将这些都图形界面和命令行界面同时进行.
推送
`landscape``bash
git remote -v
git pull
git push -u origin main
# 日常
git add file
git commit -m "commit message"
[git tag version]
git show [tag name]
git push -u origin main
git pull origin main
git fetch
git checkout branchname
[learn git branch](https://help.gitee.com/learn-Git-Branching)
# work
git clone ; git init
## config
git branch; git remote;
git branch new_branch; git branch -d delete_branch; git branch -m new_name_branch;
git remote -v;
git switch branch_name
git branch --set-upstream-to=origin/main main