git初始化 git init
把文件添加到暂存区: git add readme.txt
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
把文件提交到仓库: git commit -m "v1.0"
查看仓库当前状态 git status
显示从最近到最远的提交日志
多行排序 git log
一行排序 git log --pretty=oneline
退出 :英文状态 q
版本回退
回退到上N次,~1为上一次 git reset --hard HEAD~1
你从第10次回到第3次,想重回第10次时,只要记得版本号即可返回成功,版本号写前几位即可
回退到指定仓库状态:git reset --hard 1094a
撤销修改
尚未add时撤销修改: git checkout -- readme.txt
尚未comit时撤销修改: git reset HEAD readme.txt
删除版本中的文件 git rm readme.txt
删除了本地文件,想从git版本中恢复 git checkout -- readme.txt
如果git rm readme.txt
删除,用 git checkout -- readme.txt
是没法恢复的。但版本回退可以恢复。
远程库github
1、Windows下打开Git Bash,运行命令创建SSH Key:ssh-keygen -t rsa -C youremail@qq.com
一直下一步,不用设密码;在用户根目录会多一个.ssh文件夹
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
Git Bash是git软件,安装后,任意桌面右键即可打开,输入创建SSH Key的命令
下载地址:https://link.jianshu.com/?t=https://git-scm.com/downloads
2、注册登陆github,设置SSH keys,输入任意title,Key文本框里粘贴id_rsa.pub文件的内容
3、克隆远程库
git clone git@github.com:xxx/xxx.git
4、关联远程库
要关联一个远程库,使用命令git remote add origin git@github.com:xxx/xxx.git
(用户名/项目名.git)
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,是否添加到本机的一个信任列表里,输入yes回车即可。
如果遇见问题,可删除.git,重新执行git remote add origin git@github.com:xxx/xxx.git
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;在以后的推送或者拉取时就可以简化命令。
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
可以看到github上的项目已经上传本地版本了
查看远程库:git remote -v //本地新建的分支如果不推送到远程,对其他人就是不可见的;
远程获取最新版本合并到本地: git pull
第一次推送:git push -u origin master //如果失败,试试先运行git pull
推送最新修改:git push origin master
强制覆盖版本:git push -f //本地回退版本后,再推送强制覆盖
获取远程最新版本到本地:git fetch origin master
远程版本与本地版本合并:git merge origin/master
git pull命令用于从另一个存储库或本地分支获取并集成(整合)。git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂。原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git_pull.html
提示:LF will be replaced by CRLF 是window下的代码放linux的github下,自动转换。无特殊需求不会出任何问题。
分支
当你的git项目已发布v1.0,开发v1.01到20%的时候需要保存到仓库,但直接保存仓库会导致项目无法使用。
可以将其保存到分支dev,当开发完100%,再将dev合并到master,并删除dev分支即可
查看所有分支:git branch //master也是分支
创建+切换分支:git checkout -b dev
创建分支:git branch dev
切换分支:git checkout dev
合并某分支到当前分支:git merge dev //fast forward模式合并看不出来曾经做过合并
删除分支:git branch -d dev
查看分支合并图:git log --graph
普通模式合并:git merge --no-ff -m "xx" dev //合并后的历史有分支,能看出来曾经做过合并
从本地推送分支:git push origin branch-name //如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name //本地和远程分支的名称最好一致;
本地分支和远程分支关联: git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支:git pull //如果有冲突,要先处理冲突。
Bug分支
stash功能:可以把当前工作现场“储藏”起来,去修复主分支,等修复后又继续工作
储藏工作现场:git stash
查看工作现场:git stash list
回到工作现场:git stash pop
删除分支
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除
整理分支
git rebase
操作可以把本地未push的分叉提交历史整理成直线;
使得查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
标签
Git中打标签非常简单,首先,切换到需要打标签的分支上;然后敲命令git tag <name>
就可以打一个新标签:
查看所有标签: git tag
创建带说明的标签: git tag -a v0.1 -m "xxx"
查看标签说明: git show <tagname>
推送本地标签: git push origin <tagname>
推送全部未推送过的本地标签: git push origin --tags
删除本地标签: git tag -d <tagname>
删除远程标签: git push origin :refs/tags/<tagname>
配置别名
git st就表示git status
co表示checkout,ci表示commit,br表示branch
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
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配置文件都放在.git/config文件中
常用DOS命令
mkdir abc
//创建一个目录
cd abc
//进入目录
dir或pwd
//windows或linux的查看目录路径命令
type或cat
//windows或linux的打开文件
网友评论