文章时效性提示
这是一篇发布于 2137天前 的文章部分信息可能已经过时,请甄别后使用。
git、github使用过程中记录的一些笔记,遇到的问题及其解决办法。
1、创建SSH密匙
这步工作应该是最麻烦的吧。回到桌面,打开git bash,输入以下命令。
ssh-keygen -C 'your@email.address' -t rsa
确认使用默认路径,然后输入两次你要是用的密码就行(一般直接敲几个回车不使用密码)。
2、提交密匙
现在又要回到github的页面上,在右上方工具栏里找到Account Settings。在这个页面上有一个SSH Public Keys标签,选择Add another public key。Title随便取,Key是一段东西。
找到刚才创建密匙的那个目录下(默认是C:\Documents and Settings\你的windows用户名.ssh,OSX是~/.ssh)找到id_rsa.pub文件,把它打开可以看到一堆文字,拷贝下来黏贴到github页面key的空白处。然后点击Apply确认。
3、测试链接
ssh -v git@github.com
会要求输入你刚才设置的密码,如果成功的话可以看到类似下面的成功的提示信息。
1 2 3 4 5 6 Hi wuhuanhost! You've successfully authenticated, but GitHub does not provide bash access. debug1: channel 0: free: client-session, nchannels 1 Connection to github.com closed. Transferred: sent 3648, received 2064 bytes, in 0.6 seconds Bytes per second: sent 5703.0, received 3226.7 debug1: Exit status 1 BASH
4、创建一个新仓库
先在github上创建并写好相关名字,描述。
1 2 3 4 5 6 $ cd ~/thinkblog //到thinkblog目录 $ git init //初始化 $ git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件) $ git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可) $ git remote add origin git@github.com:wuhuanhost/demo.git //增加到remote $ git push origin master //push到github上 BASH
5、更新项目
新加了文件
1 2 3 4 $ cd ~/demo $ git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字 $ git commit //提交到本地仓库 $ git push origin master //不是新创建的,不用再add 到remote上了 BASH
修改和删除文件
1 2 3 $ cd ~/demo $ git commit -a //记录删除或修改了哪些文件 $ git push origin master //提交到github BASH
6、忽略一些文件
1 2 3 $ cd ~/demo $ vim .gitignore //把文件类型加入到.gitignore中,保存 然后就可以git add . 能自动过滤这种文件 BASH
7、clone代码到本地
1 $ git clone git@github.com:wuhuanhost/demo.git BASH
8、撤销
9、删除
1 $ git rm * // 不是用rm BASH
10、把代码更新到本地
方法一
1 $ git pull origin master BASH
方法二 (推荐)
1 2 3 $ git fetch origin master $ git log -p master.. origin/master $ git merge origin/master BASH
方法三 (推荐)
1 2 3 $ git fetch origin master:tmp $ git diff tmp $ git merge tmp BASH
11、文件恢复
恢复单个被删除的文件
1 $ git checkout [单个文件的名称] BASH
恢复所有被删除的文件
1 $ git ls-files -d | xargs -i git checkout {} BASH
12、提交到多个origin
1 $ git remote set-url --add origin git@github.com:wuhuanhost/demo.git BASH
可以同时将本地仓库提交到多个远程仓库(例如,github、gitlab)
13、提交日志写错了修改方法
1 $ git commit --amend BASH
14、回滚到某一次提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $ git log commit be7cf8bc8f497964db355b07a5e68c7ff98f7d0b (HEAD -> master, origin/master, origin/HEAD) Merge: 979ced9 df49089 Author: wuhuanhost <wuhuanhost@163.com> Date: Thu Nov 8 09:28:42 2018 +0800 测试提交2 commit 979ced92594b3027377310b161c688e57320960d Author: wuhuanhost <wuhuanhost@163.com> Date: Thu Nov 8 09:24:45 2018 +0800 测试提交1 $ git reset —hard 979ced92594b3027377310b161c688e57320960d $ git push -f origin master BASH
注:回退到测试提交1 之后会覆盖本地测试提交1 之后提交的内容,所以使用回退操作需谨慎,必要时候使用一个零时新分支来做回退操作。
15、新建分支和切换
1 2 3 4 $ git branch 分支名称 $ git checkout 分支名称 BASH
或者
1 $ git checkout -b 分支名称 ARMASM
16、分支合并
1 2 3 4 $ git checkout master $ git merge 分支名称 BASH
常见错误解决方法
1、$ git remote add origin git@github.com:wuhuanhost/demo.git
错误提示:fatal: remote origin already exists.
解决办法:$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:wuhuanhost/demo.git 就不会报错误了
2、$ git push origin master
错误提示:error:failed to push som refs to
解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
本人遇到的还有一个错误就是,工程传进github 了可是里头缺少文件,
解决方法 $git add . (注意一点)表示添加所有文件,
3、错误提示:** The authenticity of host 192.168.0.xxx can’t be established.**
解决办法: $ ssh -o StrictHostKeyChecking=no 192.168.0.xxx
附录
git命令大全,图片来源于网络