1. 工作区和版本库
工作区就是在电脑里能看到的目录。
Git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
把文件往Git版本库里添加的时候,是分两步执行:
第一步是用git add把文件添加到暂存区;
第二步是用git commit -m <comment>把暂存区的所有内容提交到当前分支。
git status用来查看当前分支状态
2. 撤销修改
场景1:想要直接丢弃工作区的修改,用命令git restore <file>。
场景2:想要撤销已添加到暂存区的文件,用命令git restore --staged <file>,就回到了场景1,第二步按场景1操作。
场景3:想要撤销已提交至当前分支但还未推送到远程库的文件:
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本可以写成HEAD~100。
把当前版本回退到上一个版本,用命令git reset --hard HEAD^或git reset --hard commit_id。
如何查找commit_id:
git log --pretty=oneline命令显示从最近到最远的提交日志, git reflog --pretty=oneline命令记录每一次提交命令。
3. 创建与合并分支
查看分支 git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>, 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容。
删除分支:git branch -d <name>
4. 其他
查看远程仓库,用命令git remote -v
添加远程仓库,用命令git remote add <shortname> <url>
将本地的分支版本上传到远程,用命令git push <远程主机名> <本地分支名>:<远程分支名>,如果本地分支名与远程分支名相同,则冒号和后面的部分可以省略,即git push <远程主机名> <本地分支名>。
从远程获取代码并合并本地的版本,用命令git pull <远程主机名> <远程分支名>:<本地分支名>,如:将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并, 用命令git pull origin master:brantest。如果远程分支是与当前分支合并,则冒号和后面的部分可以省略,即git pull <远程主机名> <远程分支名>。
将某个远程主机的特定分支的更新,全部取回本地,用命令git fetch <远程主机名> <分支名>。