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 .
运行完之后正常提交就可以

 

posted on 2017-05-21 18:18  lippor  阅读(322)  评论(0编辑  收藏  举报