查看当前路径
pwd
在当前目录下创建test文件夹
mkdir test
初始化当前文件git夹,声明为空的git仓库,初始化为master版本
git init
添加git全局邮箱
git config --global user.email "cherbini@qq.com"
添加全局用户名
git config --global user.name "cherbini"
添加文件到git仓库
git add readme.txt
提交文件命令,-m是指此次提交的说明
git commit -m "提交"
查看仓库当前状态
git status
查看文件不同的内容变化情况
git diff readme.txt
减少输出信息
git log 查看版本更新记录 --pretty=oneline
回退到上个版本 HEAD^^上上个 HEAD~100 往上100个版本 –hard 后接部分版本号可以恢复到指定版本二
git reset --hard HEAD^
查看文件内容
cat readme.txt
查看命令历史
git reflog
命令可以查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt
撤销文件在工作区的修改,或者还原文件
git checkout -- readme.txt
可以把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD <file>
删除文件
git rm test.txt
生成ssh秘钥
ssh-keygen -t rsa -C "youremail@example.com"
将关联远程仓库
git remote add origin git@github.com:michaelliao/learngit.git
将远程仓库同步到本地
git pull --rebase origin master
将本地推送到远程仓库 -u可以关联本地和远程仓库,第一次提交
git push -u origin master
查看当前目录文件列表(有什么文件)
ls
从github上clone 项目
git clone git@github.com:用户名/项目名.git
创建并切换到dev
git checkout -b dev
创建dev分支
git branch dev
切换到dev分支
git checkout dev
查看当前分支,会显示所有分支
git branch -a
合并dev分支
git merge dev
删除dev分支
git branch -d dev
查看分支合并情况
(解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。)
git log --graph --pretty=oneline --abbrev-commit
禁用fast forward,会在merge时生成一个新的commit
git merge --no-ff -m "merge with no-ff" dev
将所有未提交的修改都保存起来,用于后续恢复当前工作目录
git stash
恢复之前缓存的工作目录,删除git堆栈中的stash
git stash pop stash@{0}
恢复指定的缓存的工作目录,但不删除git堆栈的stash
git stash apply stash@{0}
查看git 堆栈中的stash列表
git stash list
移除指定stash
git stash drop stash@{0}
查看stash的不同
git stash show stash@{0}
从stash创建分支
(默认情况下,git stash
会缓存下列文件:
添加到暂存区的修改(staged changes)
Git跟踪的但并未添加到暂存区的修改(unstaged changes)
但不会缓存以下文件:
在工作目录中新的文件(untracked files)
被忽略的文件(ignored files)git stash
命令提供了参数用于缓存上面两种类型的文件。使用-u
或者--include-untracked
可以stash untracked
文件。
使用-a
或者--all
命令可以stash当前目录下的所有修改。
git stash branch newbranch
至于git stash
的其他命令建议参考Git manual。)
显示远程仓库信息
git remote -v
查看提交记录
git log --graph --pretty=oneline --abbrev-commit
形成可读性极高的标签
git tag v0.1 95b7600
创建带说明的标签
git tag -a v0.1 -m "version 0.1 released" 1094adb
查看所有标签
git tag
删除指定标签
git tag -d v0.1
推送标签到远程
git push origin v0.2
删除远程标签
git push origin :refs/tags/v0.2
推送全部未推送过的标签
git push origin --tags
查看忽略规则
git check-ignore -v sads.class
自定义命令
git config --global alias.st status
(
$ git config --global alias.co checkout
$ git config --global alias.cm commit
$ git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
)
删除远程分支
git push origin --delete <branchName>
新建远程分支
git push --set-upstream origin branch_name
本博客所有文章除特别声明外,均采用: 署名-非商业性使用-禁止演绎 4.0 国际协议,转载请保留原文链接及作者。