1.安装git
一路next即可
2.为了方便后续git能跟踪到谁做了修改,我们需要设置对应的用户名和邮箱地址
查看所有的配置
每次提交代码时,用户名和邮箱都会显示在提交记录上
git init 初始化仓库 生成.git文件 这个文件非常重要,他所在的文件夹就是仓库,他会记录你所有的变更行为。
git status 查看当前仓库的状态
git add <filename> 将单个文件加入暂存区
git add. 将所有变更文件加入暂存区
git commit -m <message> 提交本次变更 message是对这次提交的一些描述
git log 查看日志
总结:当变更文件=》git add (使文件变绿) =》git commit(commit只提交绿色的文件)
git reset <filename> 在commit之前 可以用reset来将绿色的文件重新变成红色
git reset <commitID> 将现有文件恢复到当时提交时的状态(文件内容)
git reflog 查看所有的操作记录
git pull
分支:
git checkout -b <name> <template>
name:新分支的名字
template: 以哪个分支或者commit为模板 如果这个参数不填 则以当前所在分支为模板
如果template不是本地的,是来自远程仓库的话,需要在template前面加上origin
git branch 查看所有分支,只展示本地分支
git checkout <branchName> 想回到某个版本 可以直接切换分支
git merge<branchName> 合并分支变更
远程仓库
使用github模拟一个远程仓库
git clone 远程仓库下载地址 将远程仓库下载到本地
git push -set-upstream origin bc-a 将远程仓库的bc-a分支作为本地bc-a分支的上流分支
再使用git push 就可以顺利将本地变更推送至远端了
总结:如果我们的分支是本地新切的,也就是说没有设置上流分支,则需要使用git push -set-upstream先设置上流分支,之后的commit都可以直接通过git push 进行提交。
git fetch 拉取远程仓库信息
git pull 同步远程仓库的代码 等同于先fetch再自动merge 让新的变更到自己本地的分支
rebase 枚举变更的commit 依次变机
实际使用
git state 查看在你上次提交之后是否有对文件进行再次修改
git stash
git stash pop
Git提供了一个git stash命令恰好可以完美解决该问题, 其将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,这样工作区干净了后,就可以切换切换到master分支下拉一个fix分支。在完成线上bug的修复工作后,重新切换到dev分支下通过git stash pop命令将之前储藏的修改取出来,继续进行新功能的开发工作
先将个人分支的修改储藏起来
在将之前储藏的修改取出来
Git(六):git stash 命令 - 知乎 (zhihu.com)
git的三种状态转换及忽略某些文件不提交 - coco9821 - 博客园
git branch -a 列举所有的远程分支
远程仓库没有我的个人分支
git push --set-upstream origin lmq-new 直接在远程仓库创建了我的分支
当暂存区为空,如果我们想要放弃对某一个文件的修改,可以用这个命令进行撤销:
git checkout -- projects/las/src/app/routes/cascade/*
误add单个文件,只撤销部分文件 git reset HEAD file 将此次修改的这个 file 退回到工作区
git reset HEAD projects/las/src/app/app.module.ts
然后再checkout--
Git之撤销修改 git checkout -- file、git reset HEAD file 的使用 - 掘金 (juejin.cn)
误操作的文件都删除后,将修改的代码提交到本地个人分支,
然后在个人分支更新代码,切换至主分支,pull更新代码,再切换到个人分支 合并主分支的最新代码
然后将最新代码push 到自己的远程个人分支
再切换至主分支,合并个人分支代码
总结:修改代码后先在本地个人分支提交,然后切换至主分支pull最新代码,再在个人分支下合并主分支代码(如果此时有人修改了和你相同文件上传至远程分支,你pull下来后合并到自己分支 会产生冲突,在个人分支下解决冲突)解决冲突后将最新代码push到自己的远程分支,然后切换至主分支代码,在主分支上合并个人分支代码,然后主分支push上传至远程仓库。