目录
六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)
一、定义:
开发项目时进行代码管理时常用的一个工具。
二、两大特点:
版本控制和分布式。
三、常用命令:
- git init #帮忙创建一个人版本库
- git add code.txt #在仓库添加了code.text这个文件
- git commit -m '版本1‘ #进行了提交
- #两个命令加起来才是创建了一个版本,’版本1‘是你所创建版本的一个说明信息。
- git log #查看创建的版本记录。
- (commit后有一串信息,它是你创建版本的序列号)
- git reset --hard HEAD^ #版本回退,如果想回到某一个版本可使用该命令。
- (HEAD^与HEAD~1等价,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前两个版本,HEAD~100表示当前版本的前100个版本,HEAD相当于一个指针)
- git reset --hard 版本序列号 #可以回到该序列号的版本。
- git reflog #可查看操作记录。
- (如果把终端关了,再打开终端,看不到版本号,可使用该命令)
- git checkout -- <文件>#丢弃工作区的改动
- git reset HEAD code.txt
- #如果将文件的修改已经加到暂存区了,还想丢弃改动可使用该命令,把暂存区的修改撤销,回到工作区,再使用丢弃工作区的改动命令。(若已经提交了不合适的修改到版本库,参考版本回退。)
- git diff HEAD -- code.txt
- #对比两个文件不同(输出内容中前面若无加号或减号则是两个文件都有的内容,带加号或减号的是文件所特有的,加代表工作区里的code.txt,减代表HEAD版本的code.txt)
- git diff HEAD HEAD^ -- code.txt #对比两个版本间某个文件不同
- rm code.txt #删除文件
- #若想丢弃改动 git checkout -- <文件>
- #若想在暂存区删除的文件再回来,先取消暂存,再checkout
- git log --pretty=oneline #以简短形式显示已创建版本记录
- git branch #查看有几个分支
- git checkout -b dev # 创建并切换到dev分支(带*表示你所在分支的位置)
- git checkout master #切换分支(master是你要切换到的分支名字)
- git merge dev #合并分支
- (将要合并的分支合并到当前分支,这种合并叫快速合并,直接把指针往前一挪)
- git branch -d dev #删除分支
- git branch <分支名字> #创建一个分支,不切换。
- git log --graph --pretty=oneline #可以查看分支提交的情况(图)
- git merge --no-ff -m '禁用 fast-foruard' dev #禁止快速合并,重新做一次新的提交
- git stash #保存
- git stash list #列出保存的工作现场
- git stash pop #恢复工作现场
四、分支管理:
分支是什么呢?就好比工厂里的流水线一样,HEAD先指向分支,分支再指向版本,默认有一个master分支。
五、git 要点小记:
- 每次更改后的版本只是在原版本上添加了新增的内容,新版本中只有新增内容。
- 工作区:电脑中的目录,比如git_test,就是一个工作区,也就是你git init的那个目录。
- .git :工作区有一个隐藏目录.git,这个是git的版本库,git 的版本库里存有很多东西,其中最重要的是stage(或叫index)的暂存区。
- 编辑文件都是在工作区,git add 是把在工作区的修改放到暂存区,git commit 是把暂存区的修改一次性做一次版本记录。
- 起冲突:两个分支都有了新的提交记录,并且修改的是同一个文件。
- bug分支:修复bug时,要禁止快速合并
六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)
可看到被保存到的路径,所以cd到.ssh/ 下
id_rsa是私钥,id_rsa.pub是公钥,cat一下复制公钥加入github的key中,title的名字可以自己起,如“xiaoxiao",最后点击Add SSH Key,大功告成。
七、克隆项目
- git clone 复制地址 #克隆项目
- git push origin 分支名称 #推送分支
- git branch --set-upstream-to=origin/smart smart #本地的smart分支跟踪远程的smater分支
- git pull origin 分支名称 #从远程分支上拉取代码
八、不小心commit后如何撤销
git log #查看自己的commit记录
git reset --soft HEAD^ #撤销commit记录
git log #已经没有commit记录了
九、多次commit如何合并成一个commit
- GIT有多个commit时,需要先进行git log
- 查看历史commit记录
- 回到要合并的commitID的上一个commitID
- 即复制粘贴commitID
- git rebase -I commitID
- 最上面的是最早提交的版本记录,所以将要合并的版本记录改为s,要合并到哪个版本的版本记录不变为pick
- 同理,最上面的logo_upload为最早的commit -m,将要的留下,不要的commit -m与#...都删除
- git push -f
- 成功记录如下:
-
综上所述,最妙的办法是杜绝这么多个commit的发生,可以使用git commit --amend