https://git-scm.com/downloads下载、安装git
#配置自己的信息
git config --global user.name "姓名"
git config --global user.email "邮箱"
#创建目录、初始化
mkdir test-git #新建目录
cd test-git
git init #初始化仓库(本地)
经验
每次实现一个小功能、新增一个函数之类,就做一次提交并注明附加信息
每次做一个区块的业务、功能时,新建一个分支,在业务测试OK时合并到主分支,新建的分支就不用管了
将大文件、日志、编绎结果、隐私类的文件都屏蔽掉
.gitignore
不跟踪某些文件、目录,文件放置在项目根目录中
branch(分支)
git branch #查看本地分支
git branch -a #查看所有(远程和本地)分支,分支前面带*号的就是目前的分支
git branch -r #只显示远程分支
git branch -m old-branch new-branch #将分支名称old-branch改名为new-branch
git branch test2 #创建分支,但不会切换到该分支
git branch -d test2 #删除一个分支
git checkout -b main #创建并切换到main分支,分动必须不存在
git checkout main #切换到已有分支,分支必须存在
git switch main #切换到已有分支,分支必须存在
git switch -c list #创建分支并切换到分支
add
添加修改到暂存区(Staging Area)
git add app.js #添加一个文件
git add . #跟踪新增、修改的文件(不含删除文件)
git add -u #跟踪已修改、已删除的文件(不含新文件)
git add -A #相当于git add .加上git add -u
#强制将被.gitignore中忽略的文件或目录添加到暂存,-f = -force
git add -f logs/
git add -f logs/error.log
git add . --dry-run #尝试运行添加暂存区的操作,显示会有哪些文件被影响,但不会实际执行添加操作
commit
将暂存区的更改提交到(本地)git仓库
git commit -m "附加信息"
merge(合并)
对分支进行合并
git switch main #切换到主分支
git merge feature #将feature合并到主分支,合并如果没有冲突,则会完成提交到本地的操作(不需要add和commit)。如果有冲突,需要手动编辑冲突的文件,然后执行add和commit操作
远程仓库
git remote add origin https://github.com/username/repo_name.git #连接远程仓库
git push -f origin main #如果Main分支受保护,-f会强制推送
git push -u origin main #把本地仓库推送到远程仓库,main是分支,如果之前没有登录,会要求登录github,(以前是在命令行中输入账号和密码)现在的git会弹出一个界面,点击后跳转浏览器在网页中完成授权。
git remote -v #查看当前远程仓库
git remote set-url origin https://.... #更换远程仓库
清除已登录的账号
Windows中搜索“凭据管理器”,点"Windows凭据",找到对应网站后删除,再次push时就会要求重新登录
拉取&克隆
git clone https://github.com/user/repo.git
git pull #如果仓库有更新,通过pull将最新的项目拉取过来
回滚
git reset --soft HEAD~1 #将上一次的commit取消,但是不会动文件
git reset --mixed <commit-id> #将某一次commit之后的所有提交都放弃,但是不动文件
git reset --hard <commit-id> #将文件恢复到某一次commit,之后的commit移除(会影响文件)