git常用命令

git常用命令

账号配置

  • MAC配置全局的git账户

    查看所有账户信息

    git config --list
    

    查看当前全局的git账户信息

    git config user.name
    git config user.email 
    

    添加/覆盖全局git用户名和邮箱

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

    删除全局的git用户名和邮箱

    git config --global --unset user.name "用户名"
    git config --global --unset user.email "邮箱"
    
  • Mac配置git SSH公私钥

    查看本地ssh目录是否有公私钥

    cd ~/.ssh
    

    如果有删除,没有执行下命令创建

    ssh-keygen -t rsa -C “邮箱账号”  //一路回车即可生成 id_rsa 、id_rsa.pub
    

    将id_rsa.pub 公钥拷贝至服务器的ssh中即可

    cat id_rsa.pub 
    

文件管理

  • 查看当前分支本地文件状态

    git status
    
  • 查看当前分支本地修改文件具体信息

    查看所有修改明细

    git diff HEAD
    

    查看具体文件修改明细( 例如:查看readme.txt修改内容)

    git diff readme.txt
    
  • 修改文件后推送到远端

    查看修改的文件

    git status
    

    查看修改文件具体内容

    git diff xxxx
    

    将xxx文件添加到缓存区

    git add xxxx
    

    提交到本地库并添加提交说明,也可以不需要说明直接 git commit

    git commit -m “提交说明”
    

    提交到远程master分支

    git push origin master
    

    查看git提交日志

       git log
    

    回退

      // 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;
      git reset --soft 需要回退的提交的id
      // 彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;
      git reset --hard 需要回退的提交的id
    
    

分支管理

  • 查看本地分支

    git branch
    
  • 查看远程分支

    git branch -r
    
  • 查看所有分支(本地&远程)

    git branch -a
    
  • 创建本地分支

    git branch dev      //dev 是分支名,可自定义
    
  • 切换本地分支

    git checkout dev    //dev 是要切换目标分支名称
    
  • 将本地分支push到远程(要切换到推送的目标分支上)

    git push origin dev //dev 是要推送要远程的本地分支名称
    
  • 删除本地分支

    git branch -D dev   //dev 是要删除的本地分支名称
    

命令行指引

Git 全局设置
git config --global user.name "username"
git config --global user.email "email"
git clone

程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。

$ git clone <版本库的网址>

该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。

$ git clone <版本库的网址> <本地目录名>

git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

SSH协议还有另一种写法。

$ git clone [user@]example.com:path/to/repo.git/
$ git clone  git@github.com:jquery/jquery.git

通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合。各种协议优劣的详细讨论请参考官方文档

git remote

为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。

不带选项的时候,git remote命令列出所有远程主机。

$ git remote
origin

使用-v选项,可以参看远程主机的网址。

$ git remote -v
origin  git@github.com:jquery/jquery.git (fetch)
origin  git@github.com:jquery/jquery.git (push)

上面命令表示,当前只有一台远程主机,叫做origin,以及它的网址。

克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。

$ git clone -o jQuery https://github.com/jquery/jquery.git
$ git remote
jQuery

上面命令表示,克隆的时候,指定远程主机叫做jQuery。

git remote show命令加上主机名,可以查看该主机的详细信息。

$ git remote show <主机名>
$ git remote show origin

git remote add命令用于添加远程主机。

$ git remote add <主机名> <网址>
$ git remote add origin git@github.com:jquery/jquery.git

git remote rm命令用于删除远程主机。

$ git remote rm <主机名>
$ git remote rm origin

git remote rename命令用于远程主机的改名。

$ git remote rename <原主机名> <新主机名>
$ git remote rename origin old-origin

参考地址

远程创建一个新仓库,克隆到本地
  1. 在gitlab上新建一个项目然后在本地clone下来,

  2. 进入项目添加文件通过git add 命令,将文件关联到git;

    git add file.txt 添加指定文件到git

    git add . 添加所有文件到git

  3. 通过git commit命令提交关联到git到文件;

  4. 通过git push命令将提交的文件推送到远程git仓库指定分支

git clone ssh://git@gitlab.xxxx.xxx:port/username/projectname.git
cd projectname
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
将本地现存项目推送到到远程仓库
  1. 进入本地现有项目文件夹
  2. 执行git ini初始化git命令
  3. 给当前项目添加远程仓库主机名称和地址 git remote add <主机名> <地址>
  4. 执行git add .命令将文件添加到git
  5. 执行git commit 命令将文件的文件提交到git
  6. 执行git push命令将提交到文件推送到远程仓库
cd existing_folder
git init
git remote add origin ssh://git@gitlab.xxxx.xxx:port/username/projectname.git
git add .
git commit -m "Initial commit"
git push -u origin master
将本地已有的Git仓库项目推送到一个新的地址(或者说更改现有的git仓库远程地址)
  1. 进入本地已有git仓库项目
  2. 重命名当前项目远程仓库的主机名称git remote rename <原主机名> <新主机名>
  3. 重新设置当前项目的远程仓库主机名和地址git remote add <主机名> <地址>
  4. 将当前项目全部文件推送到新仓库git push -u <当前项目远程主机名> --all
  5. 将当前项目的标签推送到新仓库git push -u <当前项目远程主机名> --tags
cd existing_repo
git remote rename origin old-origin
git remote add origin ssh://git@gitlab.xxxx.xxx:port/username/projectname.git
git push -u origin --all
git push -u origin --tags
git地址迁移
  • 查看当前仓库地址

    git remote show origin
    
  • 更改项目git地址(迁移)

    • 方式一

      通过set-url origin 指定远程仓库地址

      git remote set-url origin [新地址]
      
      
    • 方式二(会产生两个远程分支old-origin和origin)

      1、重命名当前远程分支;2、添加当前远程分支的新地址

      //重命名当前远程分支为 old-origin
      git remote rename origin old-origin
      git remote add origin [新地址]
      
一台主机配置可访问多个github仓库地址

在常规开发中,我们的一台设备(主机),一般会设置一个github仓库地址。如果主机需要访问多个github仓库地址,需要将我们的ssh key添加到对应的github仓库的SSH keys菜单中,遗憾的是对于同一个ssh key, github不支持添加到多个仓库中,否则会有如下提示:

Key is already in use

在这里插入图片描述

出现上述提示,则说明我们的ssh key已经被其他github仓库使用了,无法将其添加到该仓库。为了解决一台主机能够同时访问多个github仓库,这里我们需要在~/.ssh/(mac环境)目录下,配置config文件。

  1. 创建不同仓库的ssh key密钥对

    参考上面Mac配置git SSH公私钥(我这里创建了两个github仓库的密钥对)

    • 仓库1 ssh key密钥对

      • 私钥:repositry1_id_rsa
      • 公钥:repositry1_id_rsa.pub
    • 仓库2 ssh key密钥对

      • 私钥:repositry2_id_rsa

      • 公钥:repositry2_id_rsa.pub

  2. 配置github仓库ssh key

    将两个仓库的公钥配置到对应的github仓库的ssh key内
    在这里插入图片描述

  3. 配置config文件(如果没有则创建一个touch config

    将两个仓库的私钥配置到config内 在这里插入图片描述

  4. 测试连接

    终端通过ssh -T git@{Host} 命令测试配置是否成功,Host是我们config内配置的Host别名

    ssh -T git@repository1
    ssh -T git@repository2
    

    如果出现如下提示,则说明我们配置成功

    Hi XXXX! You've successfully authenticated, but GitHub does not provide shell access.
    
  5. 拉取项目

    注意:

    1. github上通过ssh 命令clone项目 ,标准的项目的ssh命令格式一般为git@github.com:拥有者/项目名称.git

      例如:git@github.com:zcmain/Project1.git,当我们通过config配置好github仓库访问之后,我们需要更改clone的命令了,将标准的git@github.com替换为我们config内配置的具体仓库的Host别名.

    例如,我需要clone两个仓库的标准ssh 命令为:

    # 仓库1的Project1项目的ssh命令
    git@github.com:zcmain/Project1.git
    
    # 仓库2的Project2项目的ssh命令
    git@github.com:tomato/Project2.git
    

    通过我们上述config文件配置好的不同仓库Host来clone两个项目具体命令如下

    # clone github仓库1的Project1.git项目
    $ git clone git@repository1:zcmain/Project1.git  # 这里指定了Host为repository1,拥有者为zcmain(github账号)
    
    # clone github仓库2的Project2.git项目
    $ git clone git@repository2:tomato/Project2.git   # 这里指定了Host为repository2,拥有者为tomato(github账号)
    

    执行上述命令后,最终两个仓库项目都clone成功

    Cloning into 'Project1'...
    remote: Enumerating objects: 2906, done.
    remote: Total 2906 (delta 0), reused 0 (delta 0), pack-reused 2906
    Receiving objects: 100% (2906/2906), 1.52 MiB | 222.00 KiB/s, done.
    Resolving deltas: 100% (955/955), done.
    
    
    Cloning into 'Project2'...
    remote: Enumerating objects: 2105, done.
    remote: Total 2105 (delta 0), reused 0 (delta 0), pack-reused 2105
    Receiving objects: 100% (2105/2105), 1.48 MiB | 195.00 KiB/s, done.
    Resolving deltas: 100% (488/488), done.
    
git 给远程库 添加多个url地址

原文地址
一般来说,我们为git增加远程库,一般都是

git remote add origin <url>

但是你可能想要把你的本地的git库,既push到github上,又push到开源中国Git@OSC上,怎么解决呢 ?有人可能会用两个甚至多个远程库,即再添加一个远程库

git remote add origin2;

这个方法很低效,因为你要git push 两次才能完成push到两个库。其实还有一个方法,git的一个远程库 可以对应多个地址,让远程库origin拥有多个url地址。 方法如下:
首先,我们从零开始, 假设你现在想要增加3个远程库地址,分别为 :

// url 1
https://git.oschina.net/shede333/swioslibary.git
// url 2
https://git.oschina.net/shede333/swscrollbar.git
// url 3
https://github.com/shede333/CoreAnimationTestSW.git

首先,先增加第一个地址 (add)

git remote add origin <url1>

然后增加第二个地址(set-url)

git remote set-url --add origin <url2>

增加第三个地址(set-url)

git remote set-url --add origin <url3>

…依次类推
这样就完成了添加多个地址到origin库中了, 以后只要使用git push origin master 就可以一次性push到3各库的master分支里面了(使用git push也可以推动到当前默认分支)。

原理解析
git remote set-url --add origin 就是往当前git项目的config文件里增加一行记录。
config文件打开方式有两种

  1. 使用命令git config -e
  2. 在当前git项目的根目录下,文件位于 .git/config (.git目录为隐藏文件)

你每执行一次git remote set-url --add origin 就会增加一行,如下图:
git remote -v显示当前所有远程库的详细信息,显示格式为 远程库名字 url连接(类型)
在这里插入图片描述
所以说,你直接在config里面直接添加url来修改也是可以的,不必去执行git命令。
注意
使用git push origin master时,你可以push到origin的多个url地址,
但是使用 git pull时,只能拉取origin里的一个url地址(即fetch-url,如上图),这个fetch-url默认为 你添加的到origin的第一个地址,
如果你想更改,只需要更改config文件里,那三个url的顺序即可,fetch-url会直接对应排行第一的那个url连接。

常见错误及解决方案

Git在push推送时,报错提示信息如下:
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

是由于本地和远程仓库两者代码文件不同步,因此需要先pull,进行合并然后再进行push
解决方案

  1. 先使用pull命令:
    git pull --rebase origin master
  2. 再使用push命令:
    git push -u origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全: Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值