git的配置
git config --global user.name "heaboy" –-写自己名字 git config --global user.email "heaboy@126.com" --设置自己的邮箱 生成ssh ssh-keygen -t rsa -C "heaboy@126.com" --根据邮箱生成公钥和私钥
- 在用户目录下找到.ssh文件夹,打开找到id_rsa.pub文件,打开后复制,
再码云添加ssh公钥点击确定 - Clone 项目
git clone git@gitee.com:heaboy-boy/ufs.git --根据项目url克隆项目
git语句
- 查看你修改了多少东西: git status
- 查看到底修改了什么: git diff
- 添加到本地暂存区: git add
- 提交到本地仓库: git commit -m“你的解释信息”
- 同步远端仓库到本地: git pull
- 同步本地仓库到远端: git push
- 用于删除一个文件:git rm
- 查看分支:git branch
- 创建分支:git branch
- 切换分支:git checkout
- 创建+切换分支:git checkout -b
- 合并某分支到当前分支:git merge
- 删除分支:git branch -d
- 分支合并图。git log --graph
- 存储手头工作git stash
- 返回存储的手头工作,并删除存储区git stash pop
- 丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
- 查看远程库信息,使用git remote -v;
- 操作可以把本地未push的分叉提交历史整理成直线;rebase
- 用于新建一个标签命令,默认为HEAD,也可以指定一个commit id;git tag ,
- 可以指定标签信息;命令git tag -a -m “blablabla…”
- 可以查看所有标签。命令git tag
- 可以推送一个本地标签;命令git push origin
- 可以推送全部未推送过的本地标签;命令git push origin --tags
- 可以删除一个本地标签;命令git tag -d
- 可以删除一个远程标签。命令git push origin :refs/tags/
- 比如,让Git显示颜色,会让命令输出看起来更醒目:$ git config --global color.ui true
- 从远程抓取分支,使用git pull
git知识点
- rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用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,如果有冲突,要先处理冲突。
- HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
- 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
- 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
- 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
- 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
- 忽略某些文件时,需要编写.gitignore;
- .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!