GIT学习笔记
周末试着写了个博客程序想要部署到PythonAnyWhere上,由于PythonAnyWhere需要git来管理文件,所以就去学习了下git.挺好用的,现在我已经把我所有的程序都在coding.net上远程管理了,酷酷的~~~
本地仓库
创建版本哭
mkdir xxx //新建目录
cd xxx
git init //把目录变成git可管理的仓库
文件添加到版本库暂存区,并没有提交
git add xx.txt
提交到版本库
git commit -m "" //-m ""添加注释
每次修改,如果不add到暂存区,就不会加入到commit中,就算add后再修改的内容也不会被commit
查看版本库状态
git status //
- 有变动而没添加到版本库:no changes added to commit (use "git add" and/or "git commit -a")
- 有文件添加到版本库但并没有提交 Changes to be committed
- 所有文件都提交到版本库了 nothing to commit (working directory clean)
查看文件与版本库中文件的差别
git diff
查看commit记录
git log
git log --pretty=oneline //用单行显示每条记录
git 中用 HEAD表示当前版本,也就是最后提交的版本,用HEAD表示上一个版本,HEAD^表示上一个版本,HEAD~20表示上20个版本
版本回退
git reset --hard HEAD^
回退后,在git log中就不能看到回退地方之前的记录了,需要使用下面的方法
查看命令历史,以便确定要回到未来的哪个版本。
git reflog
在reflog中找到回退前的commit id 使用下面的命令前进到回退前的版本
git reset --hard 3628164
撤销工作区修改
git checkout -- xx.txt
将xx.txt文件回到最近的一次git commit或者 git add时的状态
撤销暂存区的修改
git reset HEAD xx.txt
从版本哭中删除文件
git rm xx.txt
git commit -m "remove xx.txt" //还未commit时可以 通过git checkout -- xx.txt 恢复xx.txt
远程仓库
在本地初始化远程仓库
git remote add origin https://git.coding.net/agmcs/oksb.git
推送到远程仓库
git push -u origin master
-u参数 git将会把本地master分支和远程master分支关联起来
相关联后,以后要push修改只需要 git push origin master
从远程库克隆项目到当前目录
git clone https://git.coding.net/agmcs/learngit.git
分支管理
创建分支
git branch dev
切换分支
git checkout dev
直接创建并切换分支
git checkout -b dev
查看当前分支
git branch
当前分支前面会有一个*号
合并某分支到当前分支
git merge dev
删除分支
git branch -d dev
查看分支合并图
git log --graph