使用github也有一段时间了,但是只是简单使用,知识不成体系。今天抽了点时间整理了一下,比较基础,希望能对你们有帮助~
本篇文章没有将怎么配置SSH免密登录,需要了解的小伙伴可以去查看别的资料~
另外,本文中的图片一部分来自b站狂神说Git教程,一部分来自尚硅谷Git教程(个人比较推荐尚硅谷),另外一部分来自本人日常总结。
多人协作工作的管理
本地版本控制:
集中版本控制(SVN):所有的版本都存放在服务器上。
需要一个中央服务器,每个人要先从中央服务器获取最新版本,完成工作后再把自己的修改提交到中央服务器上。
需要联网才能工作。
分布式版本控制(Git):每个人拥有全部代码 (安全隐患) ,可以离线提交,联网时可以push到相应的服务器或者其他电脑。
add到暂存区,commit到本地仓库,push到远程仓库
工作区(workspace):
暂存区(stage/index):事实上只是一个文件
本地仓库(Repository):存放你提交的所有版本的数据,head指向提交的最新版本
远程仓库(Remote):托管代码的服务器(如github)
创建本地仓库的方式:
git init 初始化 或者克隆别的项目到本地
四个命令,一个命令对应一种状态
#初始化本地仓库
git init
#设置用户名和邮箱,此用户不一定是仓库所有者,而是本次提交更新者
#加上global代表系统用户级别,不加代表项目/仓库级别的,两者都有优先后者
git config --global user.name "myname"
git config --global user.email "myemail"
#查看配置
git config -l
#查看系统配置
git config --system --list
#查看全局配置
git config --global --list
#克隆远程仓库的项目
git clone remote_url
#绑定本地和远程仓库 后面是SSH
git remote add origin [remote_url]
#查看所有文件状态
git status
#添加所有文件到缓存区
git add .
#把文件从缓存区撤回
git rm --cached .
#提交缓存区内容到本地仓库 m表示提交时的信息
git commit -m "加了****"
#提交本地仓库到远程仓库 origin和master都是分支
git push (origin master)
从远程仓库里下载下来(clone),然后vscode打开做修改,就可以push上去
团队间合作
第一个人创建本地仓库,push到远程库来同步;如果第二个人要使用,就要先clone下来进行修改,再push到远程仓库;
指针HEAD指向当前版本
查看历史版本
#查看all提交记录
git log
#其他漂亮的方式
git log --pretty=oneline
git log --oneline
#方便查看版本切换的指针移动次数
#中有HEAD@{移动到当前版本需要多少步}
git reflog
进行版本穿梭
#利用索引值进行穿梭 (推荐)
#其中索引值是git reflog中,HEAD前面的一串字符
git reset --hard {索引值}
#使用^进行后退 一个^后退一步 且只能显示HEAD之前的历史版本
git reset --hard HEAD^
#使用~进行后退 后退i步
git reset --hard HEAD~i
index file暂存区,working tree工作区
#上面的参数都是--hard,现在说两个其他的
# --soft
仅在本地仓库移动HEAD指针
#--mixed
在本地库移动HEAD指针,且重置暂存区
#--hard
在本地库移动HEAD指针,且重置暂存区,重置工作区
#查看所有分支包括本地分支和远程分支
git branch -a
#查看远程分支
git branch -r
#创建分支
git branch branchname
#切换分支
git checkout branchname
#创建+切换
git checkout -b branchname
#将新分支推送至github
git push origin branchname
#删除本地分支
git branch -d branchname
#删除github远程分支
git push origin :branchname
git只上传某个文件夹
# add等操作的时候 后面加上 ./文件夹名就可以了
项目里并不是所有文件都要提交(前端的npm_modules不用打包)
添加.gitignore
文件,添加要被忽略的文件
#忽略所有txt文件
*.txt
#除了lib.txt
!lib.txt
#
/temp
#忽略build目录下的所有文件
build/
#忽略doc目录下的所有txt文件,但不包括doc/server/arch.txt
doc/*.txt
除了这两个之外,有时候公司也会搭建自己的git平台(gitlab)
使用gitee
新建远程仓库并初始化,并把远程仓库克隆到本地,就可以进行代码管理