Git 小白教程

Git 的用法

一、配置SSH key

检查是否已存在 SSH Key 打开电脑终端,输入命令:ls -al ~/.ssh会出现两种情况

  1. 终端出现文件 id_rsa.pubid_dsa.pub,则表示该电脑已经存在SSH Key,此时可继续输入命令:
pbcopy < ~/.ssh/id_rsa.pub     

这样你需要的SSH Key 就已经复制到粘贴板上了,

  1. 终端未出现 id_rsa.pubid_dsa.pub文件,表示该电脑还没有配置SSH Key,此时需要输入命令:
ssh-keygen -t rsa -C "[email protected]"        
  1. 注意,这里的 [email protected] 是你自己的邮箱,选一般的常用的邮箱即可,笔者当时用的是腾讯企业邮箱,就出现了一点小问题,所以不常用的邮箱一般不推荐
    默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,此时终端会显示:
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home_path/.ssh/id_rsa): 

连续回车即可,也可能会让你输入密码,密码就是你的开机密码

此时再输入命令:ls -al ~/.ssh 就会出现 id_rsa.pubid_dsa.pub 两个文件,然后重复情况一的步骤即输入以下命令再进行步骤3即可:
pbcopy < ~/.ssh/id_rsa.pub

  1. 将SSH Key添加到GitLab中
    打开GitLab, 登录,找到左边栏有-->设置--SSH Key

二、基本配置

  1. Git 配置个人的用户名称和电子邮件地址:
 git config --global user.name "Balopy"
 git config --global user.email [email protected]

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

  1. 文本编辑器
    设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置:

    git config --global core.editor emacs  
    
  2. 查看配置信息 git config --list

credential.helper=osxkeychain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=Balopy
[email protected]
core.editor=vim
  
  1. 编辑配置信息 $ git config --edit --global
[filter "lfs"]
      clean = git-lfs clean -- %f
      smudge = git-lfs smudge -- %f
      process = git-lfs filter-process
      required = true
[user]
      name = Balopy
      email = [email protected]
[core]
      editor = vim
[http]
      postBuffer = 524288000  (这个是内存RAM,如果值不合适,会报错:fatal: Out of memory, malloc failed (tried to allocate 889192448 bytes)
)
~                                                                                                                                                          
"~/.gitconfig" 12L, 239C


  1. 可以单独查看某个配置信息:git config user.name

三、使用

1. git init 使用当前目录作为Git仓库,我们只需使它初始化。

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。
在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN 会在每个子目录生成 .svn 目录,Git 只在仓库的根目录生成 .git 目录)。

  1. 使用我们指定目录作为Git仓库。
    git init Balopy_Git
  2. 在gitLab 上建一个工程,并 clone 到本地 Balopy_Git 文件夹下(这个位置自己随意)。
2. clone 整个工程
git clone <版本库的网址>
例: git clone [email protected]:ios/268Product.git

clone 到指定目录

 git clone <版本库的网址> <本地目录名>
 例:git clone [email protected]:ios/268Product.git "268新demo"

3. add / commit

  1. 执行 git add 《文件名》/ 注意:一定要加上/,表示目录下所有文件,文件名最好不要用 汉字。
  2. 执行 git remote add origin [email protected]:ios/yidadaOnline.git 远程添加到git
  3. git commit -m "备注" 如果 git 不能提交 Pods,请查看 Pods 文件夹下有没有 .git文件夹,如果有,删除重新提交。
  4. 查看远程仓库
    如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。
    你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。
$ git remote -v
origin  https://github.com/schacon/ticgit (fetch)
origin  https://github.com/schacon/ticgit (push)

4. git push / pull

  1. git push origin master 远程推送到 gitLab。
  2. 打开本地目录
  3. git pull 拉取远程文件
open ~   打开根目录
open ~/Downloads/ 打开根目录下的文件夹
open .  打开当前文件夹
    

5. 创建分支 git branch

  1. git branch 查看分支,列出本地所有分支
  2. git branch -r 查看远程分支
  3. git branch -a 查看本地和远程分支
  4. git branch wang 创建分支,名称wang
  5. git checkout wang 切换到指定分支 wang, 即将``wang`设置为当前操作分支
  6. git add newfile.txt 在当前分支下,添加文件
  7. git commit -m "添加文件" 提交到当前分支
  8. git push 推送到远程分支
  9. git merge verson_1.0 当前分支合并 verson_1.0分支,如 master 合并 verson_1.0
  10. git branch -m wang version_1.0修改分支名 wang 为 version_1.0
  11. git push --set-upstream origin verson_1.0 将修改名字后的分支推送到远程
  12. git branch --d version_1.0 删除本地分支
  13. git push origin --delete version_1.0 删除远程分支
$ git branch  本地分支
  master      主干分支
$ git branch wang  创建分支

$ git branch
* master  * 表示当前操作分支
  wang    新创建分支
  
$ git checkout wang 指定分支
  master
* wang    分支,* 表示当前操作分支

$ git branch -r  远程分支
  origin/master
  origin/wang

$ git add newfile.txt
$ git commit -m "添加文件"
$ git push     push 之后远程自动创建分支 ·remotes/origin/wang·

$ git branch -a
  master
* wangchun
  remotes/origin/master
  remotes/origin/wang
  
$ git branch -m wang version_1.0   修改分支名 wang 为 version_1.0

$ git branch    查看本地分支
  master
* verson_1.0

$ git push --set-upstream origin verson_1.0  将修改名字后的分支推送到远程

$ git branch -a
  master
* verson_1.0
  remotes/origin/master
  remotes/origin/verson_1.0

$ git checkout master 指定当前分支为master
$ git merge verson_1.0  当前分支 master 合并 verson_1.0分支

$ git push origin --delete verson.2
To git.268xue.com:ios/Test.git
 - [deleted]         verson.2

$ git branch -r
  origin/master   已删除

  • Git 拉取远程分支步骤 以及常用指令

    1. 新建一个空文件,文件名为Demo

       mkdir Demo
      
    2. 建立一个空的git仓库

       git init 
      
    3. 关联仓库

       git remote add origin [email protected]:XXXX.git
      
    4. 把远程分支拉到本地

       git fetch origin remotDeveloper(remotDeveloper为远程仓库的分支名)
      
    5. 在本地创建分支dev并切换到该分支

       git checkout -b Balopy(本地分支名称) origin/remotDeveloper(远程分支名称)
      
    6. 把某个分支上的内容都拉取到本地

       git pull origin remotDeveloper(远程分支名称)
      
    7. 提交到远程分支

      git push origin HEAD:remotDeveloper (提交到原远程分支)
      git push origin Balopy(提交到本地同名分支)
      
  • Git本地及远程分支回退

    1. git本地版本回退
       git reset --hard HEAD^ 回退到上一个版本
       git reset --hard HEAD~3 回退到之前的3次提交后
       git reset --hard commit_id(可用 git log 查看)
      
    2. git远程版本回退
      git push origin HEAD --force #强制将本地的HEAD与远程服务器同步,删除服务器回退前的提交
      #下面的命令也可以实现远程版本回退
      git reset --hard HEAD~1
      git push --force
      

6. 删除 git 文件

 git rm test.txt  (删除本地文件)
 git rm -r test    (删除本地文件夹)
 
 git rm -r --cached 宁夏共享_v_2017_10_10  (删除远程文件夹)
 git rm -r --cached .settings/  
 git rm -r --cached .classpath  
 git rm -r --cached .project  
  1. 可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库
git remote show origin
  1. 重命名文件 git mv <文件名> <文件名>
git mv README.md detail.txt

四. 删除远程 Tag 在Git v1.7.0之后

  1. 删除Tag:
git push origin --delete tag 
  1. 在Git v1.7.0之前
    删除远程分支(推送一个空分支到远程分支,其实相当于删除远程分支):
git push origin :
  1. 删除远程 Tag(推送一个空tag到远程tag,其实相当于删除远程tag):
git tag -d 

git 的更多用法请参考 Git教程

你可能感兴趣的:(Git 小白教程)