• git学习笔记


    前记:

    • 工作区:开发文件存放的目录
    • 暂存区:.git文件夹中,git add 添加的文件存放目录
    • 版本库:git commit 提交后文件进入版本库。

    一、创建本地仓库,在/d/Projects/git目录下创建仓库。

    注册:

    Administrator@SKY-20170408WPJ MINGW64 /d/git (master)
    $ git config --global user.email "xxxxx@163.com"

    Administrator@SKY-20170408WPJ MINGW64 /d/git (master)
    $ git config --global user.name "xxxx"

    git config core.autocrlf false   #//禁用自动转换 不然可能会报一些:LF will be replaced by CRLF in 文件名 。看着烦


    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git $ git init Initialized empty Git repository in D:/Projects/git/.git/

    二、新建index.php,并在index.php中:

    <?php
    echo "hello git";

    三、提交到本地仓库

    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git add ./
    
    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
            new file:   index.php
    
    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git commit -m "make a file named index.php"
    [master (root-commit) 4ccd708] make a file named index.php
     1 file changed, 2 insertions(+)
     create mode 100644 index.php
    
    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git status
    On branch master
    nothing to commit, working tree clean

    (注:git add ./ 将当前目录(/d/Projects/git)发生变化的文件添加到仓库的暂存区)

     四、提交本地项目到远程服务器:

    1、为远程服务器项目添加别名:

    git remote add git_origin git@xxx.xx.xxx.xx:/data/gitserver/git.git  ##根据实际情况设置  git:服务器上git用户名 ,xxx.xx.xxx.xx :服务器地址:/data/gitserver/git.git创建的git仓库
    git remote rm git_origin ##删除

    2、推送项目:

    git push git_origin master  ##将本地的 master 分支推送至远端的 master 分支,如果没有就建一个

    (注:遇到错误:

    remote: error: insufficient permission for adding an object to repository database objects
    remote: fatal: failed to write object
    error: remote unpack failed: unpack-objects abnormal exit

    是因为远程的git.git文件没有访问权限,在git.git目录下:chown -R git:git git.git  

    五、从远程服务器clone项目到本地

    在E:/git目录下

    Administrator@WIN-20151122RYN MINGW64 /e/git

    git clone git@xxx.xx.xxx.xx:/data/gitsrv/git.git

    六、从服务器同步代码到本地

    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git pull git_origin master

    七:日志

    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git log
     

    Administrator@WIN-20151122RYN MINGW64 /d/Projects/git (master)
    $ git log --pretty=oneline

    八、版本切换

    git reset --hard 2580d   ##2580d是某个版本号前几位,只要不重复就行 

    git push -f -u origin master  ##强制将本地回退的版本更新到服务器

    九、搭建服务器仓库

    cd ./data/gitserver/
    git init --bare invest.git
    cd ../
    chown -R gitsrv:gitsrv gitserver

     十、生成本地rsa_pub key生成,并配置到服务器

    ssh-keygen -t rsa -C "lippor2011@163.com"  #默认生成到/c/Users/Administrator/.ssh目录下

    将c/Users/Administrator/.ssh目录下:id_rsa.pub文件内容拷贝到服务器authorized_keys文件夹下

    完成后就可以从服务器上clone代码或者push代码到服务器


    十一、分支管理

    git branch     #分支列表  ,当前所在分支前会有 “*”号
    git checkout -b dev    #创建dev分支并切换到此分支 等同于:git branch dev git checkout dev
    ##进行开发工作,工作结束后提交:
    $ git add ./
    $ git status
    $ git commit -m "test dev branch"
    
    #提交完成后
    git checkout master            #切换到主分支,主分支并没有看到刚才修改的内容
    #将dev分支内容合并到主分支
    git merge dev        #将dev分支合并到当前分支
    git branch -d dev  #删除分支

     十二、版本回退与前进

    $ git log --pretty=oneline
    78a400aec133030dba8ead457c4583e897dd9ca6 (HEAD -> master, dev) test dev branch
    1769fbb3a4d7deccfff15600227d8ad798f01c72 (git_invest/master) 
    #回退一个版本到:1769fbb3a4d7deccfff15600227d8ad798f01c72
    $ git reset --hard 1769f
    #前进一个版本到:78a400aec133030dba8ead457c4583e897dd9ca6
    $ git reset --hard 78a4
    十三、gitignore文件失效,多个用户的某些操作导致gitignore文件失效
     git rm -r --cached .
    运行完之后正常提交就可以
  • 相关阅读:
    Go实现线程池
    Go语言工程结构
    Go语言示例-函数返回多个值
    Go语言参数中的三个点是干什么的
    go语言示例-Timer计时器的用法
    Go语言的类型转化
    iOS 修改通讯录联系人地址(address)崩溃原因分析
    tableview小结-初学者的问题
    Objective-C总Runtime的那点事儿(一)消息机制
    论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C
  • 原文地址:https://www.cnblogs.com/lippor/p/6885010.html
Copyright © 2020-2023  润新知