mac- git 使用笔记

    技术2022-07-11  111

    文章目录

    mac-git使用笔记mac git安装git创建与远程库的链接git上传本地库到远端git分支管理常用命令: 代码冲突覆盖问题git stash 使用详解

    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 "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上传本地库到远端

    在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

    代码冲突覆盖问题

    当我从一个远程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 pull

    git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。 上面指令的基本意思是,将原来的文件加入版本控制,在用stash 保存到栈中,再用新的文件就可以覆盖,stash缓存可以将原文件恢复。

    git stash 使用详解

    命令描述git stash能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。git stash save等同于git stash,区别是可以加一些注释git stash list查看当前stash中的内容git stash pop将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。注:该命令将堆栈中最近保存的内容删除(栈是先进后出)git stash apply将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。git stash drop + 名称从堆栈中移除某个指定的stashgit stash clear清除堆栈中的所有内容git stash show查看堆栈中最新保存的stash和当前目录的差异git stash branch从最新的stash创建分支

    参考Mac安装Git以及Git和Github使用教程 MAC上Git安装与GitHub基本使用

    Processed: 0.016, SQL: 9