git config -l //查看用户配置信息
ssh-keygen -t rsa -C "email" //创建SSH Key
git config --global user.name "my name"
git config --global user.email "email@example.com"
git config --global core.editor vim //修改编辑器为vim
git remote -v //查看远程地址
git branch -a git branch -r //查看所有分支
git checkout -t origin/remotebranch //在本地创建一个远程分支并关联
git init
git add
git status
git commit -m
git log //
git reflog //查看所有的版本修改历史
git reflog show
git log -p fileName //查看某一文件的具体修改
git reset --hard HEAD^ //恢复到上个版本
git reset --hard a6329df562 //恢复到某个版本(a6329..是版本id)
cat readme.txt //读取文件内容
git diff //查看版本的不同
git checkout -- readme.txt //取消本地readme.txt的修改(未添加到缓存区的修改,此处的修改也包括删除readme.txt文件)
git reset HEAD readme.txt //取消readme.txt缓存区的内容未未缓存
rm readme.txt //删除本地文件
git rm readme.txt git commit //删除版本库中的文件
关联远程仓储(github)
git remote add origin git@github.com:shichunxiang0/learngit.git
//把本地内容推送到远程库
git push -u origin master
git branch //查看分支,当前分支前油田*号
git branch branchname //创建分支
git branch -m oldname newname //重命名本地分支
git checkout branchname //切换分支
git checkout -b branchname //创建并切换分支
git checkout -b dev origin/dev 切换到远程分支(创建本地dev对应远程dev)
git merge branchname //合并某分支到当前分支
git branch -d branchname //删除分支
git branch --delete dev //删除远程分支
git log --graph //分支合并图
git log --graph --pretty=oneline --abbrev-commit
git merge --no-ff -m"" dev //另一种合并分支的方式
//常用git stash命令
git stash //把当前工作现场储存起来(修改的内容必须存储到缓存区)
git stash list //存储的工作现场列表
git stash pop 恢复并删除工作现场,默认为第一个stash,即stash@{0}
git stash apply //恢复工作现场,默认使用第一个存储,即stash@{0}
git stash drop 删除工作现场
git stash apply stash@{0} 恢复到某个工作现场
git stash save "save message" //执行存储时,添加备注,方便查找
git stash clear //删除所有缓存的stash
git stash show //显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num}
git branch -D branchName 强制删除某个没有合并的分支
git push origin master 推送主分支
git push origin dev 推送开发分支
git push origin --delete <branchName> 删除远程分之
标签
git tag tagname 生成一个标签
git tag tagname commit-id 给某次提交补一个标签
git push --tags 将tag推到远端
git show tagname 显示某个标签内容的详细说明
git tag -a tagname -m"" 有说明的标签
git tag 显示所有标签
git tag -s v1.3 -m"signed version 1.3 released" commit-id//用私钥签名一个标签,必须安装有光屁股(GnuPG)
git tag -d tagname //删除某一个标签
git push origin tagname //将某一个标签推送到远程仓储
git push origin --tags //将所有标签推送到远程仓储
//删除远程仓储上的标签分两步
1.删除本地标签 git tag -d tagname
2.删除远程; git push origin :refs/tags/tagname
git co . 抛弃工作去修改
git submodule update --init --recursive //加载子项目
git blame filename.c //显示文件的每一行是哪个版本最后修改
git whatchanged filename.c //显示某个文件的每个版本提交信息
git show 7aee80cd2a //根据版本id显示某个版本的修改信息 或 git log -p 7aee80cd2a
git show 5aa1be6674ecf filename.c //显示某个版本的某个文件修改情况
git cherry-pick 某个commit id // 把某个commit id的提交合并到当前分支.