以前做过的工程项目都摆的乱糟糟的,刚刚完成了深度学习作业,很久以前就使用过git但是太久没做都忘光了,接着这次机会从新熟悉一下git基本使用,把完成的小项目作业都存起来。
略(以后自己再用的话会补充)
查看git版本:
git --version 首先要创建一个全局用户名、全局邮箱作为配置信息(github每次commit都会记录他们): git config --global user.name "yourname" git config --global user.email "yourname@mail.com"查看上述配置信息(按q退出):
git config --list Git默认对大小写不敏感,建议把Git设置成大小写敏感。 git config core.ignorecase false出现错误fatal: not in a git directory 说明当前不是git目录 ,自己找一个地址新建一个文件夹(或者已有项目文件夹),进入文件夹用一下命令初始化文件夹。
git init出现如下,该目录已经为本地git地址:
Initialized empty Git repository in /Users/wangqiang/Source/git_workplace/.git/ 本地要和远端的github库连接,需创建密钥(ssh key),提供公钥给远端,本地保存私钥,用来交互时验证身份: ssh-keygen -t rsa -C your_email@mail.com会出现,没有创建过的一路回车或者yes,我创建过,所以选n:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/wangqiang/.ssh/id_rsa): /Users/wangqiang/.ssh/id_rsa already exists. Overwrite (y/n)? n 创建成功后回到本用户目录下,查看密钥: cd /Users/yourname cat .ssh/id_rsa.pub复制密钥,打开github网页账户,点击浏览器右上角用户图标,下拉菜单选择Settings,接着在左边菜单中选择SSH and GPGkeys,在右边面板点击New SSH key,title填写备注,key填写刚刚复制的密钥。最后点击Add SSH key创建完成。
验证链接:
ssh -T git@github.com出现如下则链接成功:
Hi yourname ! You've successfully authenticated, but GitHub does not provide shell access.(git删除远程地址)
git remote rm origin(git查看远程仓库地址信息)
git remote -v 将本地文件提交到远程仓库,git push命令将本地分支master提交到远程库origin上,第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。: git push -u origin mastera. 如果出现错误:error: src refspec master does not match any的话原因在于1.本地git仓库目录下为空2.本地仓库add后未commit3.git init错误,再检查一下前几步。
b.如果出现错误:! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/0000Oliver/myMINST.git' 出现这个问题是因为github中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并:
git pull --rebase origin master其中--rebase使得两个分支融合成一个线性的提交,不会形成新的节点。
c.如果出现错误:fatal: unable to access 'http://github.com/0000Oliver/poem_writer/': Recv failure: Connection reset by peer 需要用https才能读到数据,查看远程库的地址是否有错误。删除重连或者输入命令
git config --global url."https://".insteadOf git://当我从一个远程pull一个分支,出现如下错误:
error: The following untracked working tree files would be overwritten by merge: Please move or remove them before you merge.问题在于问题是没有在本地跟踪文件,但是相同的文件被远程跟踪,所以为了“pull”,系统将被迫覆盖不受版本控制的本地文件。 使用如下解决了问题:
git add * git stash git pullgit stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。 上面指令的基本意思是,将原来的文件加入版本控制,在用stash 保存到栈中,再用新的文件就可以覆盖,stash缓存可以将原文件恢复。
参考Mac安装Git以及Git和Github使用教程 MAC上Git安装与GitHub基本使用