命令
git init :将当前目录变成Git可以管理的仓库
git add <file> :文件修改添加到暂存区
git commit -m <message>: 把暂存区的所有内容提交到当前分支,message是提交注释
git status :查看文件提交情况
git diff <file> : 查看文件修改的内容
git log : 查看提交历史日志,加--pretty=online使其展示更简洁。
git reset --hard <commit_id> : 回退到某个提交id版本;若退回后想重新回到原版本,使用git reflog查看历史命令。
git reflog : 查看历史命令,可看到提交的commit_id进行回退。
commit_id不用写全部,可以写部分,git通过左模糊查询到提交的版本。
git checkout -- <file> : 丢弃某个文件的修改,让这个文件回到最近一次git commit或git add时的状态
git rm <file> :删除文件,然后commit进行提交;误删的话,可通过 git checkout -- <file>进行还原。
git remote add origin <远程仓库地址> : 将本地仓库与远程仓库关联
git push -u origin master :将master分支内容推送到远程仓库,-u表示Git不但会把本地的master分支内容推送的远程新的master分支;
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,用git push orgin master即可。
git clone <仓库地址> :将远程仓库克隆一份到本地。
git checkout -b <分支名> :创建并切换到该分支,或者使用git switch -c <分支>也行
git branch <分支名> : 创建分支
git branch : 列出所有分支,当前分支前面会标一个*号。
git checkout <分支名> :切换到该分支,或者使用git switch <分支名>
git merge <分支名> :将当前分支与指定分支进行合并
git branch -d <分支名> :删除分支
git stash : 保存工作现场
git cherry-pick <commit_id> :复制一个特定的提交到当前分支
git remote -v : 查看远程仓库信息,fetch/push分别表示抓取和推送的地址,若没有某个地址则表示无此权限。
概念
1.先拉后推
远程分支比你的本地更新,需要先用git pull试图拉取最新内容并合并。
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
2.拉取后合并出现冲突
解决冲突,并在本地提交。
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本;
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
相当于指针,指向当前版本ID。
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容 例如,发生冲突时, HEAD表示当前分支内容;feature1分支内容
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1
Fast forward模式 合并分支时,如果可能,Git会用Fast forward模式;即将HEAD当前分支的指针快速指到最新的分支内容上。
Bug分支
适用场景:当正在进行新的需求开发(dev分支)时,需要在原先版本(master分支)的进行bug修改;但新的需求开发代码暂时还不能提交。 步骤:
1.保存工作现场(当前分支为dev)
git stash
2.切换到master分支,在master分支上创建bug修复的分支
git checkout master
git branch -b bug101
3.修复完成后合并到master分支(当前分支为bug101)
git checkout master
git merge bug101
4.切换到dev分支,恢复工作现场
git checkout dev
git stash list : 查看工作现场
git stash pop : 恢复工作现场并删除工作现场;git stash apply和 git stash drop命令的集合。
5.此时master修复的bug与dev的部分不一致,需将bug修复的部分也合并到dev分支
git cherry-pick <commit_id> :复制一个特定的提交到当前分支
6.删除bug分支
git branch -d bug101