git 使用笔记
-
安装好之后,想要本地传文件,必须配置一个本机公钥,
-
在GitHub 点击头像,setting(设置),SSH,生成公钥之后(就用第一句代码,回车两次即可),在C:\Users\taohang文件夹下有一个.ssh文件夹,把文件夹下的的id_rsa.pub放在github上
-
然后在gitBash里面:全局配置邮箱账户
git config --global user.email "xiaotaokh@163.com" git config --global user.name "Javatk"
把本机和github连接起来
-
在项目目录下面直接 git init 创建github仓库
git status 查看需要上传的文件 git add . 提交所有上传的文件 git commit -m "first commit" 提交第一个版本
接着把github新建的项目出现的两行代码运行,
git remote add origin https://github.com/Javatkh/test_vue.git git push -u origin master
常用命令:
// 查看分支关联关系
git branch -vv
本地新分支未关联远程分支,本地master关联远程master
// 查看所有分支
git branch -a
// 新建本地分支
git branch 本地新分支
// 新建远程分支之后.. 本地取回远程分支更新
git fetch
// 切换本地分支
git checkout 本地分支
本地远程分支关联远程分支
- 第一:先git branch -a
- 第二:关联(注意:远程分支名字全部复制)
git branch -u 远程分支(我这里是remotes/origin/fe_navigation)
- 再次git branch -vv查看关联关系
git reset --soft 9f30ad89a4ad6fd
软回退,回退至
9f30ad89a4ad6fd
这个版本
项目中使用流程:
每天早上 git status 出现:
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
然后再 git pull,
再git status
每次提交代码之前:git status
git add .
git status
git commit -m “我修改了xxx”
git status
git pull
git status
git push
git status
记住每次git都要穿插git status
其他:
1.初始化
- 初始化一个Git仓库,使用git init命令。
- 添加文件到Git仓库,分两步。
- 使用命令git add ,注意,可反复多次使用,添加多个文件。
- 使用命令git commit -m ,完成。
2.查看状态
- 要随时掌握工作区的状态,使用git status命令。
- 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
3.日志,回退
- HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
- 穿梭前,用git log可以查看提交历史(日志),以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
4.多分支原理
- Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3V9ywjM-1587712073848)(https://i.imgur.com/HTvtIhx.jpg)]
5.撤销修改
- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
- 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
- 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
6.删除
- 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
6.GitHub
- 要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
- Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
- 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
- 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
- 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
7.分支
- 查看分支:git branch
- 创建分支:git branch
- 切换分支:git checkout
- 创建+切换分支:git checkout -b
- 合并某分支到当前分支:git merge
例如:把dev合并到master上,先切换到master,再合并 - 删除分支:git branch -d
8.版本冲突
- git status也可以告诉我们冲突的文件
- 用git log --graph命令可以看到分支合并图。
9.创建标签
- 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
- 命令git tag -a -m "blablabla…"可以指定标签信息;
- 命令git tag可以查看所有标签。
10.bug
- 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
- 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
11.Feature分支
- feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D参数。
- git branch -D feature-vulcan
12.协作
- 查看远程库信息,使用git remote -v;
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
- 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
- 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
13.多人协作一般流程
- 首先,可以试图用git push origin 推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
- 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。
- 这就是多人协作的工作模式,一旦熟悉了,就非常简单。