git常用指令
连接github
GitHub是一个提供Git仓库托管服务的网站
参考文档:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
/001374385852170d9c7adf13c30429b9660d0eb689dd43a000
一、注册GitHub网站
二、创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
##命令执行成功后,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,
##这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
三、设置SSH Key
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;
提交代码
echo "# zhonghuahuodongye-shuiwu" >> README.md //创建readme.md,并写入内容# zhonghuahuodongye-shuiwu
git add . 将项目文件添加到本地仓库
git add README test.rb LICENSE 添加README文件
git status 查看当前分支状态
git commit -m “修改说明” – 提交
git commit -a -m ‘added new benchmarks’ - 跳转使用暂存区,直接 提交
git commit –amend 撤消提交 操作
git remote add 分支名 https://github仓库地址 (用SSH,HTTPS要每次输密码)
//建议分支名:origin(远程库名)
git pull 远程库名 本地主分支名 更新 //git pull origin master
如果本地没有建立README.md,先执行
git pull --rebase origin master
git push -u 远程库名 本地主分支名(第一次上传需要-u,设置默认分支)
git push origin master 报错
git的分支操作
1.查看本地和远程分支
git branch -a
2.查看本地分支
git branch
3.创建分支
git branch test
4.切换分支 到test
git checkout test
5.创建 并切换 到分支
git checkout -b test2
6.合并分支:首先切换到master分支 ,然后执行合并
git checkout master
git merge test2 ##没有分支历史
git merge --no-ff -m "描述" 分支名 ##有分支历史
7.删除 本地分支test2
git branch -d test2
git log --graph --pretty=oneline --abbrev-commit ##查看分支历史
git branch --set-upstream-to <branch-name> origin/<branch-name> ##创建本地分支和远程分支的链接关系
本地修改同步到远程版本库(其中origin部门指定的是远程版本库的git地址,
master部门指定的是同步到哪个一个分支上)
git push origin(本地分支) master
将远程版本库上的修改同步到本地:分别是fetch和pull
git fetch origin matser
##执行这个命令后,就会将远程版本库上的代码同步到本地,
不过同步下来的代码并不会合并到任何分支上去,而是会存
放在到一个 'origin/master' 的分支上.
git diff origin/master ##使用diff命令来查看远程版本库上修改了什么:
git merge origin/master
##之后再调用 merge 命令将 origin/master 分支上的修改合并到主分支
上即可.从远程版本库上获取最新的代码并且合并到本地
或者
git pull --rebase origin master ##拉取合并代码
git配置命令
git config –global user.name “John Doe” – 默认用户名
git config –global user.email johndoe@example.com – 默认用户邮箱
git config –global core.editor emacs –默认的编辑 器设置,默认是vim
git config –list –列出所有 的设置,同一个属性可能 有多个值 ,因为多次设置,以最后 一个设置为准
git config 查看具体的设置
通过 config 设置git 别名
git config –global alias.co checkout
git config –global alias.br branch
git config –global alias.ci commit
git config –global alias.st status
取消暂存
git config –global alias.unstage ‘reset HEAD –’
显示最后一次提交信息
git config –global alias.last ‘log -1 HEAD’
调用gitk
git config –global alias.visual ‘!gitk’
git移除文件
git rm – 移除文件
git rm -f – 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母)
git rm –cached README –从git仓库中删除 ,但是本地保留,不再跟踪
支持glob 模式模式:
git rm log/*.log
git rm *~
其他命令
git init –初始化当前目前 为git项目 (在现有目录中初始化仓库)
git log – 查看提交 历史
git log -p -2 – 每次提交 的代码差异,只显示最近2次提交
git log –stat –每次提交的简略的统计信息
git log –pretty=oneline 将每个提交放在一行显示,查看的提交数很大时非常有用
git log –pretty=format:”%h - %an, %ar : %s” – 格式化输出
git log –pretty=format:”%h %s” –graph – 图形化显示
git remote –查看远程仓库
git remote -v –如果你的远程仓库不止一个,该命令会将它们全部列出 (实际是一个fetch,一个push)
git remote add 添加远程仓库
git remote add name https://… (git fetch name, 获取别的仓库内容 )
同一个项目,可能会有多个远程仓库的url (每个开发者可能把分支部署到自己的服务器上)
git remote show origin – 查看更详细 的信息
git remote rename usedname newname– 远程仓库的重命名
git remote rm paul – 远程仓库的移除
git pull –设置了分支跟踪某个远程分支
抓取数据后会尝试合并到当前所在的分支
git fetch不会自动合并
git tag – 列表所有的标签
git tag -l ‘v1.8.5*’ 使用特定的模式查找标签
git tag v1.4-lw –创建轻量标签(lightweight)
git tag -a v1.4 -m ‘my version 1.4’ – 创建 附注标签(annotated)
(-a - 添加一个附注标签,-m 选项指定了一条将会存储在标签中的信息)
git tag -a v1.2 9fceb02 –后期打标签 ,把v1.2提交 ,加在相应的commit上
commit的md5码可以 使用 git log –pretty=oneline 查找 到
git push origin [tagname] – 共享标签
git push origin –tags
git checkout -b [branchname] [tagname] – 检出 标签
git show –显示 标签信息,对应的提交 信息
git show v1.2 –查看 v1.2的提交信息
撤销做出的修改
git reset HEAD CONTRIBUTING.md – 取消暂存文件,即使git add了也没有关系
git checkout – CONTRIBUTING.md – 撤消对文件做出的修改
版本回退
$ git reset --hard HEAD^
## git中用HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上一版本
HEAD~100表示上100个版本
## 或者直接指定版本号(不用全输,只许前面几位即可)
$ git reset --hard 534688
## 如果要单独回退某一个文件,可在最后加上文件名称,但不能加 --hard参数
$ git reset HEAD^ index.txt
cat filename
##查看文件内容,拼接文件内容
撤销版本回退
当使用reset命令回退到以前的版本后,发现回退多了,或者想撤销回退操作
那只能使用指定版本号的方式了
可是git的版本号这么变态,谁能记得住?好吧,git帮你记!
查看版本号的命令:
$ git reflog
6163ac9 HEAD@{0}: reset: moving to 6163ac
287d9bd HEAD@{1}: reset: moving to HEAD~2
6163ac9 HEAD@{2}: commit: ##
186103f HEAD@{3}: commit: 7 版本回退”
287d9bd HEAD@{4}: commit: 5 查看工作区更改内容
5346884 HEAD@{5}: commit: add index.txt
fatal: Authentication failed for又不弹出用户名和密码 解决办法
git config --system --unset credential.helper ##类似删除本地git密码缓存