小白学Git

作者: 李先来贰 | 来源:发表于2019-03-07 12:55 被阅读161次

    一. 在GitHub上创建一个项目,通过命令行添加、删除、修改文件,并上传修改

    1.在GitHub上新建一个项目【just do it】,在克隆代码时注意用ssh

    FireShot Capture 006 - 你的账号_just-do-it - github.com.png

    2.使用git,进入testing文件夹

    Administrator@Y0U59FIFWUQDZ1D MINGW64 /
    $ cd ~/Desktop/testing
    
    

    3.初次尝试克隆代码到testing文件夹中

    $ git clone git@github.com:你的账号/just-do-it.git
    

    此时发现问题,不能克隆。需要设置公钥私钥

    4.设置公钥私钥(不然会报错,另外注意空格跟C的大写)
    其中公钥是id.rsa.pub
    私钥是id_rsa

    $ ssh-keygen -t rsa -b 4096 -C "你的邮箱"
    Generating public/private rsa key pair.
    
    Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
    Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Y64naDNKEgYeWjckTF1CEIiz61o46ce0pVxEdNk2QxI 你的邮箱
    The key's randomart image is:
    +---[RSA 4096]----+
    |.+===o.E=.       |
    |+ .o.o...=       |
    |.+. +   . o      |
    |=... o           |
    |o+  .   S        |
    |o+ . o o .       |
    |* * =.  .        |
    |.* *= ...        |
    |o.oo o.o         |
    +----[SHA256]-----+
    
    

    获取公钥私钥的两种方式
    第一种,进入家目录下的.ssh文件,直接用vim打开公钥

    $ cd ~/.ssh
    

    ps: ls查看当前内容后可见公钥与私钥文件

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/.ssh
    $ ls
    id_rsa  id_rsa.pub  known_hosts
    
    

    使用vim打开公钥,复制后,使用 :wq 保存退出

    $ vim id_rsa.pub
    

    第二种,使用cat直接显示公钥内容,复制粘贴

    $ cat id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCxqhteqvM/RuMDa6QOReFWNN2L5ADhVfKXxFaQUELilN08kc7JaVfMg0xXLwe3Ap6CC2oCI0LHqb8gA+WFjv24EOim/q/2LzybAPaU8q1KAkW8ip4IoY03IV6/fjKUlGJcaHtOQybvbgSy9BGIJoItR/1XrLkAI9gH3C7FvMJWZRh4wIqwIa29UpZUYW8xBz91hara3BO7vGNN37bWMKyAFlU76plkO3yeFvZeyf7rcwKFsrLvHkClfejHmVN5CRt1Bf1Rvmqt4lWkQmqzsj4/jxk1KavIlTlAuGU9sf4rE2PAx3k4cUsluUDfrUJAvCSc3WPpYnZbM2dUqDtI1UJKKcOdGBQld3fT35uElMIi7wKjeZ9lm+D8LEUAnbQCQ6/RV3LNiIjrpfTHNhvhXMDRAvrvjqWNtVFHa2S2lvpwMCmCw9mgzfSpcSpq1BPu1RMFzb+FKVZtbOu5k482iTMp7DI9C4I9tFl2H0AnpmF6s1ZlXyyCrw/egKOzKacqgTZF/sFpyGhJPZmkv88BQJpzLD9lGUI/pNH9U0fFmOEYziUizfwPkRBC6mki6WzCSGsVn+UIx2DEryERPgpZecE1Prsq4BkH6kL8j3IYuglGNXJ7FP/XGUpSc23sxxT9ptNaljzAyaYdc6yzIVz0ElyzJDm+3qsXjMg9R7kTBDiEFw== 你的邮箱
    
    

    5.GitHub设置中确定自己ssh的公钥
    在GitHub上点击头像,选择setting
    点击左侧的ssh and gpg keys,添加自己的ssh的公钥

    6.再次克隆,成功

     git clone git@github.com:你的账号/just-do-it.git
    Cloning into 'just-do-it'...
    Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
    remote: Enumerating objects: 6, done.
    remote: Counting objects: 100% (6/6), done.
    remote: Compressing objects: 100% (3/3), done.
    Receiving objects: 100% (6/6), done.
    remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
    
    

    使用ls查看本地桌面的testing文件夹内,出现了GitHub上文件夹just-do-it ,克隆成功

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing
    $ ls
    just-do-it/
    

    继续打开just-do-it文件夹

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing
    $ cd just-do-it
    
    

    用ls查看just-do-it中的文件

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing/just-do-it (master)
    $ ls
    'just try'   README.md
    
    
    

    7.在testing文件夹内创建一个文件a.html
    在just-do-it中添加文档,overwatch.html 在其中输入内容I love this game

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing/just-do-it (master)
    $ touch overwatch.html
    
    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing/just-do-it (master)
    $ vim overwatch.html
    

    在使用vim时,点击i进入编辑模式,退出时先按Esc,再按:wq保存退出。
    除此之外,也可以用echo "添加的内容" > a.md (这是直接添加)

    8.将修改内容放到暂存库,然后将其放到本地库,配置email和name
    提交到暂存区

    $ git add .
    

    再尝试提交到本地库

    $ git commit -am "add file"
    

    出现提示,填写邮箱和姓名

    *** Please tell me who you are.
    
    Run
    
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    
    to set your account's default identity.
    Omit --global to set the identity only in this repositor
    
    fatal: unable to auto-detect email address (got 'Adminis
    

    按照提示输入自己的邮箱与姓名

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing/
    $ git config --global user.email "你的邮箱"
    
    
    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/testing/
    $ git config --global user.name "你的名字"
    
    (注意email和name后面要有空隙)
    

    再次尝试提交到本地区

    git commit -am "add files"
    

    9.上传到GitHub上
    输入git push,成功上传(非第二次操作,暂不延伸)

    git push
    
    Enumerating objects: 4, done.
    Counting objects: 100% (4/4), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 344 bytes | 344.00 KiB/s, d
    Total 3 (delta 0), reused 0 (delta 0)
    To github.com:1643565650/just-do-it.git
       a1fb092..c7af4e4  master -> master
    
    

    上GitHub上检查,是否有overwatch.html(这里是有的,里面内容也正确,我就不打开了)

    FireShot Capture 007 - 1643565650_just-do-it - github.com.png

    二.在本地创建一个Git项目,推送到远程空仓库

    • 在GitHub上创建新的库
      (略)

    • 使用命令行在桌面创建文件夹test1

    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop
    $ mkdir test1
    
    • 将test1用git init初始化,没有git后缀,就无法放入暂存区和本地仓,也无法上传到GitHub上
    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/test1
    $ ls -a
    ./  ../
    
    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/test1
    $ git init
    Initialized empty Git repository in C:/Users/Administrator/Desktop/test1/.git/
    
    Administrator@Y0U59FIFWUQDZ1D MINGW64 ~/Desktop/test1 (master)
    $ ls -a
    ./  ../  .git/
    
    
    (上方可见,未初始化之前与之后的差别,多了.git后缀)
    
    • 在test1中新建文件README.md
    - 在READEME.md中输入内容
    echo "内容" >> README.md
    
    • 将远端库地址用git标签的方式记录下来
    要提交给谁呢?下面的意思是,将对应的地址增加一个叫做origin的标签
    git remote add origin git@github.com:你的账号/test1.git
    
    • 将文件传送到标签相应的地址
    git push -u origin(这里也可以用上方的远端地址代替) master
    (根据标签,将内容提交到远程库(origin)的master分支上)
    (提交过一次后,后面的origin master可以省略)
    

    以下为补充:
    放入暂存区时

    git add <要上传的文件>
    只是这一个文件进入暂存区
    或者
    git add .
    这可以让当前目录下的所有新增与修改都放入暂存区。
    之前学命令行时  cd . 就代表当前文件夹 )
    

    提交后的文件夹也可以使用下面代码,退出暂存区

    git reset HEAD <file>...
    

    再把暂存库中的内容提交给本地库

    这里需要注意,如果提交信息包含大量字符串,提交参数不用加 m

    git commit -a  
    
    # 强制推送,覆盖别人的代码
    git push -f origin master
    
    # 再添加一个远程库的标签 
    git remote add gitlab git@gitlab.com:xxxx.git
    
    #推送到gitlab标签的地址上
    git push gitlab master
    
    # 删除gitlab标签
    git remote remove gitlab
    
    # 修改rigin标签对应的地址
    git remote set-url origin git@github.com:xxxxx.git
    
    # 修改origin标签对应的地址
    git remote set-url origin git@github.com:xxxxx.git
    
    # 把gitlab标签改名为coding
    git remote rename gitlab coding
    

    删除也是同理,前提是本地仓与远程仓在开始时,文件是相同的,也走暂存仓,本地仓,远程仓的路。
    只是在提交到本地仓时,代码要将add变成delete

    git commit -am "delete a.md"
    

    三. 分支处理

    • 基本命令符
    # 创建本地库zhixian 分支
    git branch zhixian
    
    #切换到zhixian分支
    git checkout zhixian
    
    # 在该分支创造文件同理
    
    #推送到origin地址的zhixian分支上
    git push origin zhixian
    

    分支合并

    git checkout (分支名)
    git merge zhixian(分支名字)把zhixian的内容合并到当前的分支上
    

    本文为李宪骁的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

    相关文章

      网友评论

        本文标题:小白学Git

        本文链接:https://www.haomeiwen.com/subject/yvuqpqtx.html