git
git log 显示最近到最远的提交日志
HEAD -> 表示当前版本
HEAD^ 上一版本
HEAD^^ 上上版本
指向版本
git reset --hard commit_id
git reset --hard HEAD^ 退回到上一版本
查看提交历史,以便回到哪个版本
git log
要回到最新的版本就要指向最新的commit ID
git reflog 查看命令历史
工作区就是电脑上的目录,如learning目录,.git目录是版本库,暂存区就是index或stage.
步聚
git add 把文件添加到暂存区
git commit 把文件从暂存区提交到当前分支(git创建版本库时自动创建了一个master分支)
可以理解为工作区文件修改通通添加到暂存区,然后一次性提交所有修改到分支
git跟踪并管理的是修改
git commit 只负责把暂存区的修改提交到分区
git checkout -- file 把文件在工作区的修改全部撤消
file修改没添加到暂存区,checkout后file恢复成与版本库一样的状态
file修改后已添加到暂存区,又对了file做修改, checkout后file恢得到添加到暂存区后的状态
暂存区的修改撤消
假如已经把readme.txt add到暂存区了
git reset HEAD readme.txt #丢弃暂存区readme的修改
然后就可以继续丢弃工作区的readme.txt
删除文件
本地删除test.txt,远程仓库删除文件 git rm test.txt,并且要commit
如果误删除本地test.txt,可以git checkout -- test.txt恢复
本地库关联远程仓库
git remote add origin git@server-name:path/repo-name.git
第一次推送
git push -u origin master #之后推送不用-u
本地克隆远程仓库
git clone git@egegegegeeg.git
clone支持https和ssh协议,ssh速度,https每次推送需要账密
分支
查看分支 git branch
创建分支 git branch <name> 或 git switch <name>
切换分支 git checkout <name> 或 git switch <name>
创建加切换分支 git checkout -b <name> 或 git switch -c <name>
合并分支到当前分支 git merge <name>
如当前分支为master,合并dev到当前分支
git merge dev
删除分支 git branch -d <dev>
冲突
GIT无法自动合并分支时,必须先解决冲突文件(手动修改文件内容一样)。解决冲突后,先提交后再合并.
git log --graph 查看分支合并图
linux
目录权限
rwx对于目录,内容是文件名。
r 读到目录的文件名
w 修改文件名(文件或目录),建立新的文件与目录,移动或更名
x cd 能进入到目录里面
一般WEB站点的目录权限要给r及x