安装使用

  • 安装git
    sudo apt-get install git

  • 配置git文件

    git config --global user.name "你的用户名"
    git config --global user.email "你的邮箱"
    
  • 创建ssh-key
    用户主目录下, .ssh目录下,看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有,可以删除重新建或者直接略过这一步。
    创建ssh-key
    ssh-keygen -t rsa -C "邮箱地址"
    如果有提示一路enter下去,不用输入啥信息

  • 添加key至github, 并验证ssh-key是否设置成功
    复制id_rsa.pub文件的内容,进入GitHub网站,打开Account Settings,左边选择SSH Keys,Add SSH Key,,粘贴SSH Key
    你的邮箱会收到一个消息, 点进去.
    执行命令ssh -T git@github.com
    如果提示access dennied就是没设置成功
    成功提示You’ve successfully authenticated, but GitHub does not provide shell access

  • 初始化本地仓库
    git init

问题

  • 避免每次 pull/push 私有仓库输入username/password
    对于已拉完的工程
    git remote rm origin #删除原有远程关联
    git remote add origin https://username:password@github.com/your_repo_path.git  #设置新的关联依赖(注意将自己的账号密码添加到新的url中)
    
    新clone
    git clone https://username:password@github.com/your_repo_path.git
    
  • git忽略提交 .gitignore
    • 在git项目中定义.gitignore文件
      在项目的文件夹下定义, 语法如下
    bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
    /bin: 忽略根目录下的bin文件
    /*.c: 忽略 cat.c,不忽略 build/cat.c
    debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
    **/foo: 忽略/foo, a/foo, a/b/foo等
    a/**/b: 忽略a/b, a/x/b, a/x/y/b等
    !/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
    *.log: 忽略所有 .log 文件
    config.php: 忽略当前路径的 config.php 文件
    
    • 定义git全局 .gitignore文件
      任意位置创建 gitignore文件, git config --global core.excludesfile ~/.gitignore
    • .gitignore 规则不生效
      .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
      解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
      git rm -rf --cached .
      git add .
      git commit -m 'update .gitignore'
      
  • 创建/拉取分支
    • 查看分支
      git branch -a
    • 创建并切换分支
      git checkout -b dev #创建dev分支并切换至该分支
      等同于
      git branch dev
      git checkout dev
    • 拉取分支到本地
      git fetch origin dev
    • 拉取分支内容到本地
      git pull orgin dev
    • 删除分支
      git branch -D dev