一、基本命令
1.初始化仓库
git init
2.添加到暂存区
git add 文件名
3.提交到版本库
git commit -m '注释内容'
4.查看状态
git status
5.查看提交日志
git log (--pretty=oneline 该参数简化日志)
6.每次操作日志
git reflog
7.回滚版本
git reset --hard HEAD^ (HEAD~3 回滚到三次提交前版本) 也可以直接 git reset --hard 版本号前几位回滚指定版本
8.当前工作区和版本库区别
git diff HEAD -- 文件名
9.撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- 文件名。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
工作区不小心删除了一个文件,版本库里有。执行 git checkout -- 文件名 可以从版本库中恢复
删除一个文件并同步到版本库:git rm 文件名 然后执行 :git commit -m '注释'
二、远程仓库相关命令
1.添加远程仓库
git remote add origin https://github.com/Ivanlovening/tornado-study.git(写自己仓库地址)
2.推送到远程仓库
git push -u origin master (第一次 需要加-u 参数,后面就不用了)
3.删除远程仓库关联
git remote rm origin
4.远程关联多个仓库情况(远程库名字不能一样):
git remote add github https://github.com/Ivanlovening/github.git git remote add gitee https://github.com/Ivanlovening/gitee.git git push github master
git push gitee master git remote -v (查看远程库)
5.远程克隆
git clone https://github.com/Ivanlovening/tornado-study.git
三、分支管理
1.创建+切换分支
git checkout -b 分支名
2.切换到主分支
git checkout master
3.查看分支详情
git branch
4.合并分支
git merge 分支名
5.删除分支
git branch -d 分支名
6.查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
7.合并保留分支信息
git merge --no-ff -m "merge with no-ff" 分支名
8.强制删除没有合并的分支
git branch -D 分支名
9.储藏相关命令
git stash (储藏当前分支工作状态)
git stash list (查看储藏列表)
git stash apply (恢复)
git stash drop (删除储藏)
git stash pop (恢复并删除)
10.在本地创建和远程分支对应的分支
git checkout -b 分支名 origin/分支名
四、标签管理
git tag v1.0 (打标签) git tag (查看标签) git tag -d tagname (删除标签) git push origin tagname (推送标签 --tags 参数一次提交所有标签)
五、配置和忽略管理
显示颜色:git config --global color.ui true
.gitignore 忽略项目文件
命令取别名:git config --global alias.last 'log -1'
可到用户根目录下查看 .gitconfig 里面配置信息
六、多人工作模式
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to 分支名 origin/分支名