mac-git使用笔记
以前做过的工程项目都摆的乱糟糟的,刚刚完成了深度学习作业,很久以前就使用过git但是太久没做都忘光了,接着这次机会从新熟悉一下git基本使用,把完成的小项目作业都存起来。
mac git安装
略(以后自己再用的话会补充)
git创建与远程库的链接
- mac命令行中 输入 git 命令,出现如下内容说明已有git:
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
...........
查看git版本:
git --version
- 首先要创建一个全局用户名、全局邮箱作为配置信息(github每次commit都会记录他们):
git config --global user.name "yourname"
git config --global user.email "[email protected]"
查看上述配置信息(按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 [email protected]
会出现,没有创建过的一路回车或者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 [email protected]
出现如下则链接成功:
Hi yourname ! You've successfully authenticated, but GitHub does not provide shell access.
git上传本地库到远端
- 在github上创建新项目。
- 命令行进入本地项目的文件夹,初始化本地git仓库,目录下会多一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
git init
- 将所有本地文件加入本地git仓库
git add .
- 提交本次更改
-m
后面输入的是本次提交的说明
git commit -m "first commit"
- 添加已经创建的远程项目origin为远程库的名字,后面接远程库的地址,将github姓名和项目名称改成自己的,建立本地与远程的链接:
git remote add origin https://github.com/0000Oliver/myMINST.git
(git删除远程地址)
git remote rm origin
(git查看远程仓库地址信息)
git remote -v
- 将本地文件提交到远程仓库,
git push
命令将本地分支master
提交到远程库origin
上,第一次推送master分支时,加上了-u
参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。:
git push -u origin master
a. 如果出现错误: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://
git分支管理常用命令:
作用 | 命令 | 描述 |
---|---|---|
查看本地分支 | git branch |
|
查看远程分支 | git branch -r |
|
查看所有分支 | git branch -a |
|
创建分支 | git branch <分支名> |
本地分支 |
切换分支 | git checkout <分支名> |
|
创建并切换分支 | git branch -b <分支名> |
|
创建并切换空白分支 | git branch --orphan <分支名> |
|
分支关联远程仓库 | git push origin <分支名> |
|
删除本地分支 | git branch -d <分支名> |
|
删除远程分支 | git push origin --delete <分支名> |
|
修改分支名称 | git branch -m oldName newName |