Git基本操作
·Git前导概念: ·工作区:就是在电脑可以看到的目录 ·暂存区:在工作区和本地仓库中间的一个区域 ·本地仓库:在本地的代码仓库 ·远程仓库:在远程的代码仓库(如github) ·分支:提交代码的每次提交,串成的一条线,分支与分支之间互不影响
Git本地仓库: ·建立仓库:git init ·提交文件至暂存区:git add <filename> ·提交当前目录下的readme.md至暂存区:git add readme.md ·提交当前目录下learnGit目录下的readme.md至暂存区:git add learnGit/readme.md ·提交当前目录及其子目录下的所有文件:git add . ·提交文件至本地仓库:git commit -m <commit message> ·当输入git commit后,没有输入<commit message>便回车,会进入一个填写<commit message>的界面,此时先按<i>,下方的状态会变为<--insert-->,输入<commit message>,输入完成以后,按下<Esc>,此时下方状态变为空白,输入<:wq>,回车,便可完成提交信息的填写。 ·直接提交所有更改(不经过git add,提交除新增文件的所有更改):git commit -a ·查看工作区[某一文件]:git status [<filename>] ·查看变更[某一文件]:git diff [<filename>] ·查看工作区相对于暂存区的变更[某一文件]:git diff [<filename>] ·查看暂存区相对于本地仓库的变更[某一文件]:git diff --cached [<filename>] ·丢弃暂存区更改[某一文件]:git reset head [<filename>] ·丢弃工作区更改[某一文件]:git checkout [<filename>] ·代码回退至本地仓库的上一个版本(上100个版本):git reset --hard head^[head~100] ·代码回退至本地仓库的指定版本:git reset --hard <commit ID> ·查看提交记录:git log ·查看提交记录(每次记录只显示commit ID和commit message):git log --pretty=oneline ·查看所有历史commit ID:git reflog
Git远程库: ·创建SSH Key:ssh-keygen -t rsa -c <your email adress> ·查看已添加的远程库(详细信息):git remote [-v] ·为本地仓库添加远程库:git remote add <remote name> <remote adress> ·提交更改至远程仓库:git push <remote name> <remote branch name> ·第一次提交本地分支到远程仓库:git push -u <remote name> <branch name> ·普通提交(本地分支与远程分支名字不同):git push <remote name> <branch name>:<remote branch name> ·克隆远程库(默认克隆master分支):git clone <remote adress> ·克隆指定分支:git clone -b <remote branch name> <remote adress>
Git分支: ·查看分支:git branch ·创建分支:git checkout -b <branch name> ·该命令相当于两个命令的结合,即: ·创建分支:git branch <branch name> ·切换分支:git checkout <branch name> ·合并分支(dev)到当前分支(master):git merge dev ·删除分支:git branch -d <branch name> ·强制删除分支:git branch -D <branch name> ·查看合并图:git log --graph ·禁用fast forward:git merge --no-ff ·bug分支: ·存储现场:git stash ·查看现场:git stash list ·恢复(保留现场):git stash apply ·恢复(清除现场):git stash pop ·恢复(指定现场):git stash apply stash@{0} ·本地创建分支并关联到远程分支:git checkout -b <branch name> <remote name>/<remote branch name> ·关联已有本地分支到远程分支:git branch --set-upstream <branch name> <remote name>/<remote branch name> ·本地未push的合并图的分叉变直线:git rebase ·打tag: ·在当前位置打tag:git tag <tag name> ·指定commit ID处打tag:git tag <tag name> <commit ID> ·创建带说明的tag:git tag -a <tag name> -m <tag message> <commit ID> ·查看tag:git tag ·查看tag信息:git show <tag name>