Mac上常用git操作

Git 常用命令

1、安装

git下载地址:https://git-scm.com/download

Mac下是不需要主动配置环境变量的(系统已经默认配置),所以可以直接通过以下命令来查看版本号

git version

错误提示及解决办法:

xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install.
 Choose an option in the dialog to download the command line developer tools

或者

 xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, 
 use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command 
 line developer tools (or see `man xcode-select`)

以上错误说明mac没有安装 xcode,使用以下命令即可解决:

xcode-select --install // 点击安装,单独安装CommandLineTools   
 sudo xcode-select --switch /Library/Developer/CommandLineTools

2、基本配置

可以通过以下指令查看当前git的config配置

git config --list

通过以下指令配置用户名和邮箱,git提交时会需要这些信息

git config --global user.name "your_name"  
git config --global user.email "your_email@gmail.com"
git config core.ignorecase false // 本地仓库文件是否大小写敏感,建议配置(不配置也没关系)

3、生成密钥并关联仓库

1、先查看本地是否有密钥对,有的话就不用创建了,如果是第一次安装肯定是没有的,打开终端,执行以下命令

cd ~/.ssh 

密钥生成后会存放在.ssh文件下,若此文件存在并ls后显示如下内容,说明你创建过,直接关联仓库即可,否则继续生成

id_rsa  id_rsa.pub known_hosts

2、通过以下命令生成密钥对

ssh-keygen -t rsa -C "your_email@youremail.com" 

创建过程中,会询问你密钥存储位置,直接enter就好,会让你设置密码,可直接enter,也可输入密码(输密码时是不显示输入进度的,直接按键盘就好了,别傻傻的等),最后显示一个矩形方框就说明创建成功了

3、上传密钥 私钥就存在本地即可,公钥需要上传至远程仓库,这样才能让本地仓库和远程仓库建立连接;同步骤1,cd到.ssh文件,ls出上述三个文件,然后复制公钥id_rsa.pub内容,如下

xxxdeMBP:~ liyang$ cd ~/.ssh
xxxdeMBP:.ssh liyang$ ls
id_rsa      id_rsa.pub  known_hosts
xxxdeMBP:.ssh liyang$ cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRIqBw5EEyfmXX6NJ3gZB7SOFC1ATsiSPgVb8kchYNvM7qS8h/WJeFPVcY+5Uyx
SlQ/aGH1UtnLJVrTUryO5iOFN+VKSwsJPFUxxx61TQ5pV5v/HK3FzXe8+2F5ZFrGmeWr7oaWXDS4gS8DWQpY5mzPRY6MsHZ4o2tUw
+5toqlgdR/tVnhOwVa4tZ7HuUbQ4twpt2YuFFix9TAnvLXPReTt3gaFrswLePYRFVniK2pSUAnAnxPugTDH1dFlucuFFREUSy+/kB
YlXdayo8+SkdonoDVG9sHAMb6YyJtpnY/PC28NcBWphcWqI/1yPhqTSFIBo6xxx4LWN3W4t79Un9Z xxyaxx@xxx.com

复制上述四行公钥,上传至github:登录账号、点击头像、选择Settings、选择SSH and GPG keys,然后new一个ssh key,名称随便起

4、建立本地仓库 远程仓库创建好之后,复制仓库地址,然后在本地克隆一个(若你设置过密码,会要求你输入密码,输入即可),如下

git clone git@github.com:YourCount/GitTest.git 

至此,本地仓库和远程仓库都已创建好并建立连接,我们可以使用git来管理代码了

4、常用git命令

4.1 查看分支

1)查看本地分支:

git branch

2)查看所有分支

git branch -a
git branch -a //查看所有分支及其最近一条提交记录

3)查看本地分支与远程关联分支

git branch -avv

4)查看远程分支直接的关系

git remote show origin

4.2 提交代码到本地仓库

本地仓库和远程仓库一样,也有分支啊、版本啊的概念。所以你本地修改了代码,需要先commit到本地仓库,然后才将commit记录push到远程仓库。

1)查看本地仓库状态

执行以下命令(注意,这些命令需要在本地仓库的根目录执行,后面的也是)

 git stauts 

2)查看改动的内容

git diff

3)提交修改

上文说道,未暂存(这个概念也比较抽象,可以理解成打包或者说是收拾,东西收拾好才能给人嘛)的文件是不能提交的,所以我们需要先把改动暂存。暂存可以执行如下两条命令

git add a // 只暂存a文件,如果当本修改了好多文件但你只想提交一个,可以使用这个命令
git add . // 暂存全部文件

当然,对应的,暂存后突然不想暂存了,或者说东西打包好了突然不想给人了,可以拆开嘛,也就是撤销add操作,对应如下两条命令

git reset a // 撤销add a文件
git reset . // 撤销add 所有文件

可以试验一下,暂存后再通过git status查看状态,结果是不一样的 执行如下命令,提交本次改动

git commit -m "本次修改描述信息"

后面的描述信息是提交时一般要备注的,提交时没必要加双引号。当然,若你有复杂的提交信息,可以通过以下命令,在vim里操作,执行后跟普通的vim操作一样了

git commit -s

到此,我们本地仓库已经提交完成,可以通过以下命令来查询本地提交记录

git log

提交代码到远程仓库

提交代码前,建议先下拉代码并rebase。因为我们的一份代码,可能多人同时修改,当多人同时修改一处代码时会产生分叉合并,所以为了保证分支记录纯净(只有一条线),提交时先把被人提交的pull并rebase一下然后提交自己的,所以执行如下命令

git pull --rebase // push前先下拉并rebase代码
git push origin Head:master // 提交代码到远程master分支
git push // 也可以直接这样提交,前提是当前分支与远程分支有关联(当然和上面二选一)

4.3 下拉代码到本地仓库

当远程仓库有改动时,我们需要将最新代码下拉至本地仓库

git pull --rebase

4.4 管理分支

1)创建本地分支

git checkout -b v2 // 创建新分支v2,并将当前分支切换为v2

2)切换分支

git checkout v1 // 从当前分支切换为v1

3)创建远端分支

git push origin v1:remote_branch_v1 // 以本地分支v1为基准,创建远程分支remote_branch_v1,中间":"两边不要有空格

4)删除远程分支

git push origin :remote_branch_v1 // push一个空的分支覆盖掉远端分支,就是删除

5)从远端拉取分支到本地,并建立关系

git checkout -b v4 origin/master // v4本地原来不存在,master远端原来存在

6)直接推送代码到关联的远程分支

有时候我们直接通过git push来推送代码时,发现它提示如下

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use
git push origin HEAD:remote_branch_v1

To push to the branch of the same name on the remote, useg
git push origin local_v1

这时候我们执行如下命令,就可以将直接通过git push将代码推送到与本地分支关联的远程分支了

git config --global push.default upstream

4.5 撤销操作

人生没有后悔药,但是git有,而且很强大

git checkout . // 代码改动后,撤销所有改动
git reset a // git add a 后,撤销对a的add
git reset . // git add . 后,撤销add所有
git reset HEAD~1 // 已经commit,在当前分支回退1条commit,当然2就是2条;回退后修改内容还在本地
git revert HEAD~1 //已经push,回滚这条记录,需要注意的是执行完后需要继续执行以下三行才可以,因为远端会保留revert记录
    git add .
    git commit -a
    git push

5、新建项目

5.1 新建项目并上传

1.在远程第三方托管网站上新建一个远程仓库(Github、码云等)

2.本地创建一个新的项目

3.打开终端,通过cd指令进入该文件夹下,初始化一个新的Git

git init  

4.添加当前文件夹目录下所有文件到Git

git add .

5.先提交项目到本地仓库

git commit -m "project"

6.然后推送本地仓库到远程仓库,其中http://xxxxxxxx为远程仓库地址,通常需要在该地址后添加.git链接到Git仓库,如果是首次推送,还需要输出远程仓库的Git用户名和密码来进行验证

git remote add origin http://XXXXXXX.git
git push -u origin master

注:该步常见错误为远程仓库在创建时通常会新建一个readme文件,导致因远程仓库存在本地不存在的文件而上传失败

To https://gitee.com/leisurezxy/iostest.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/leisurezxy/iostest.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决方法为先执行pull命令,合并本地不存在的readme文件,再执行git push -u origin master命令即可

git pull --rebase origin master

5.2 从Git上获取已有的项目,修改后并提交

1.根据已有项目的Git地址,使用命令行工具从远程克隆一个仓库到本地

git clone https://xxxxxxx.git

2.修改完项目内容后,使用命令行工具进入项目文件夹,先执行如下两条命令将项目提交到本地仓库

git add .
git commit -m "project"

3.然后执行push命令将项目同步到远程Git仓库

git push 

注:该步常见问题为mac git设置的全局用户名和密码与该远程仓库使用的用户名密码不相符,需要通过如下命令进行修改,使用后系统会提示输入密码

git config --global user.name "用户名"
git config --global user.email "邮箱"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值