Git基本命令
-m "参数" 通常是描述信息
- git init 当前位置初始化或者创建git仓库
- git add <file> 添加待文件
- git commit -m <message> 提交更改
- git status 查看仓库当前状态
- git diff 查看仓库文件的修改内容
版本的更换
- git reset --hard HEAD^ 回退上一个版本
- git reset --hard commit_id 回退到指定ID的版本
- git log可以查看提交历史
- git log --pretty=oneline (简化)提交历史
- git reflog查看命令历史
- git checkout -- file 重做,丢弃当前,(或者错误删除)用版本库里的版本重置工作区的版本
- git reset HEAD <file> 撤销add添加到暂存区的操作
- git rm <file> 删除文件,之后需要commit
分支的操作
- 查看分支:git branch
- 创建分支:git branch <name>
- 删除分支:git branch -d <name>
- 强行删除没有合并的分支 :git branch -D <name>
- 切换分支:git checkout <name>
- 创建+切换分支:git checkout -b <name>
- 合并name分支到当前分支(快速合并会丢失分支信息):git merge <name>
- 合并name分支并保存分支历史 :git merge --no-ff -m "<message>" <name>
- 查看分支合并图 :git log --graph
- 查看简化分支合并图 :git log --graph --pretty=oneline --abbrev-commit
- 把本地未push的分叉提交历史整理成直线 :$ git rebase
多人协作:
推送分支:
- $ git push origin master
- $ git push origin dev
抓取分支:
- 从远程仓库克隆数据:$ git clone git@github.com:michaelliao/learngit.git
- 抓取与远程仓库对应的dev分支:$ git checkout -b dev origin/dev
推送冲突解决:
- 1、抓取提交代码:$ git pull
- 2、建立本地与远程仓库分支的连接:$ git branch --set-upstream-to=origin/dev dev
- git branch --set-upstream-to <branch-name> origin/<branch-name>
- 3、建立连接后再次抓取$ git pull,是否有合并merge冲突
- 4、手动解决合并冲突,查看冲突文件status,修改代码
- 5、add、commit、push
bug分支:
- 1、储存现场 $ git stash
- 2、选择一个分支,创建一个修复bug的分支:$ git checkout -b issue-101
- 3、在该分支上对bug进行修复,修复后跳转分支进行合并
-
$ git add readme.txt
-
$ git commit -m "fix bug 101"
-
$ git checkout master
-
$ git merge --no-ff -m "merged bug fix 101" issue-101
- 4、查看储存的现场 $ git stash list
- 5、git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
- 6、用git stash pop,恢复的同时把stash内容也删了:$ git stash apply stash@{0}
远程仓库:
- 获得ssh秘钥对:$ ssh-keygen -t rsa -C "youremail@example.com"
- 将本地仓库与远程库相关联:git remote add origin git@github.com:path/repo-name.git;
- 或者使用地址:git remote add origin https://github.com/michaelliao/gitskills.git;
- 关联码云远程库 :git remote add origin git@gitee.com:leileiywl/learngit.git
- 关联远程仓库并更改名称 :git remote add github git@github.com:michaelliao/learngit.git
- 第一次推送master分支的所有内容:git push -u origin master
- 向远程仓库推送最新本地commit的master分支:git push origin master
- 克隆远程仓库:git clone git@github.com:YaoWenlei/gitskills.git
- 删除名为origin的远程仓库 :git remote rm origin
- 查看远程库信息 :git remote -v
标签
- 命令git tag <tagname>用于新建一个标签,默认为HEAD;
-
$ git tag <tagname> <commit id> 指定ID创建标签
- 命令git tag -d <tagname>可以删除一个本地标签;
-
- 命令git tag可以查看所有标签。
- 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
-
命令git show <tagname>可以看到说明文字:
-
- 命令git push origin <tagname>可以推送一个本地标签;
- 命令git push origin --tags可以推送全部未推送过的本地标签;
- 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
注:本文图片来源于廖雪峰老师的官方网站