bboyay@bboyay-virtual-machine:~$ vim .gitconfig #设立账号,说明是谁修改了代码
bboyay@bboyay-virtual-machine:~$ mkdir git_test
bboyay@bboyay-virtual-machine:~$ cd git_test/
bboyay@bboyay-virtual-machine:~/git_test$ git init
初始化空的 Git 仓库于 /home/bboyay/git_test/.git/
bboyay@bboyay-virtual-machine:~/git_test$ ls
bboyay@bboyay-virtual-machine:~/git_test$ ls -al
总用量 12
drwxrwxr-x 3 bboyay bboyay 4096 6月 25 19:17 .
drwxr-xr-x 29 bboyay bboyay 4096 6月 25 19:17 ..
drwxrwxr-x 7 bboyay bboyay 4096 6月 25 19:17 .git
其他指令:
touch code.txt 创建文件code.txt
vim code.txt 修改文件
cat code.txt 显示文件
git add code.txt 将文件添加至暂缓区
git commit -m ‘名字(可填写版本号,修改了哪些内容)’ 将暂缓区的内容一并提交到分支
git log 查询现在所处版本之前记录
git reflog 查询所有版本操作记录
git reset --hard ’完整版本号‘ 回退指定版本号的版本
git reset --hard HEAD^ 回退当前所处版本的上一个版本
其中HEAD表示当前最新版本,HEAD^ 表示当前版本的前一个版本,HEAD^^表示当前版本的前前个版本,也可以使用HEAD1表示当前版本的前一个版本,HEAD100表示当前版本的前100版本。
git status 查询分支状态
git reset --hard '不完整版本号' 这里版本号填的是git reflog 查询内容的版本号
git checkout -- code.txt 将未进入暂缓区的修改后的文件退回工作区修改前的文件,说白了就是放弃在工作区中的修改
git reset HEAD code.txt 只放到暂缓区没有提交,用git status查询到可以用此语句以把暂存区的修改撤销掉,重新放回工作区。
删除:
rm code2.txt ,如果在这一步误删,可用git checkout -- code2.txt撤销
git rm code2.txt
git commit -m '删除code2.txt'
分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
用带参数的git log也可以看到分支的合并情况 :git log --graph --pretty=oneline
禁用快速合并的方式来合并分支:
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
修复bug:
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,恢复工作现场。
git diff HEAD -- code.txt :意思是目前工作区的文件内容比最新版本的内容多了一句 ' +the new line ' ,减号表示HEAD, 加号表示 目前工作区修改后的内容。
下两图的意思分别是:
1.上一个版本比最新的版本少了一句 this is the forth line ,所以这句话之前的减号就表示后者比前者少了东西。这里的减号表示前者HEAD,后者加号表示HEAD^。
2.和1正好反过来,后者是最新的版本,所以用加号表示跟前者比起来,后者多了一句话 ,就用 ’+this is the forth line‘, 前者是HEAD^,后者是HEAD。