版本控制管理工具--git的学习记录

起步:
1.git的三种状态,git status命令:modified,staged,commited
 
2.git安装:1.使用安装包  2.从源码安装(优)
 
3.配置存放目录: /etc/gitconfig  git config命令使用--system选项
        ~/.gitconfig  用户目录  --global选项   
        .git/config  当前项目工作目录
 
4.配置文件编辑器:  git config --global core.editor vim   
 
5.配置差异分析 git config --global merge.tool vimdiff
 
6.查看配置:git config --list  
        git config user.name
 
7.帮助:方式一: git help config    
    方式二:git <verb> --help
    方式三:man git-<verb>
 
 
 
基础:
 
8.取得项目git仓库 1.从已有项目  在项目目录下git init
        2.clone  git clone git://...........   mygrit   (mygrit为自定义目录名默认为grit)
9.git add 文件名  纳入版本控制,进入暂存状态
    git status  可以查看暂存状态 和未纳入版本控制,修改但未提交的文件   
    git commit  提交,必须要经过git add的文件才会被提交
 
10.配置gitignore文件  cat .gitignore  是不是就先用vim创建一个.gitignore文件呢?    
 
11.查看具体修改了哪些地方 git diff   已修改但未暂存和快照的差异
            git diff --cached  已暂存和快照间差异
 
12.提交时加参数:git commit -v (将修改差异的每一行显示到注释)
        git commit -m  "注释说明"
 
13.跳过暂存提交:git commit -a       对所有已跟踪的文件暂存并提交  
 
14.删除文件:git rm  filename      (删除本地并从暂存中删除)提交后不会纳入版本控制了,也可以先手动删除本地文件  
    git rm -f  finlename     (已经暂存时加-f)
    git rm --cached filename  (从暂存中删除)但本地保留
15.移动文件: git mv  oldname newname      
    相当于:mv oldname newnamne
        git rm oldname
        igt add newname
 
16.提交历史:git log
        gil log -p -2      (还有--stat --pretty常用)
 
 

17.查看当前配置有哪些远程仓库,  git remote 命令


18.提交到远程仓库:git push origin master      origin仓库名,master是分支名


19.标签查看:git tag



分支:

19. git branch  branchname
 

20.git checkout   branchname


在服务器部署 Git:

21. 克隆纯仓:$ git clone --bare my_project my_project.git

22. 将纯目录转移到服务器(假设一个域名为 git.example.com 的服务器已经架设好,并可以通过 SSH 访问,而你想把所有的 Git仓库储存在 /opt/git 目录下):

       $ scp -r my_project.git user@git.example.com:/opt/git      



---实战-在服务器部署 Git(服务器为Ubuntu系统)---

ssh登录服务器后:

1.安装:apt-get install git-core

2.创建/home/projects/git  用于存放git仓库

客户端本地:

1. 在本地做一个仓库(也可以找一个已有仓库):

    cd /home

    mkdir gexiuserver

    cd gexiuserver

    git init

2.克隆纯仓(gexiuserver是第一步中创建的仓库或是已前的仓库):

   cd /home

   git clone --bare gexiuserver gexiuserver.git

    就可以在/home目录下找到一个gexiuserver.git文件目录了

3.将纯目录转移到服务器:

   scp -r gexiuserver.git user@example.com:/home/projects/git

4.使用:

   git clone ssh://user@example.com//home/projects/git/gexiuserver.git

   cd gexiuserver

   get push origin master  (第一次push要加仓库与分支名origin master以后就不需要了)



---实战-git忽略已经被提交的文件 ---
转载:http://blog.csdn.net/korekara88730/article/details/45869239

项目初始化时需要提交一些必不可少的代码文件,但是这些代码文件在每个人的机器上又会重新编译一次,并且结果不一样。

这样的话,如果每个人都提交这些文件,实际上是完全没有必要的。 


具体到我们项目中,使用 egret 引擎 typescript 语言开发。引擎的 ts 代码会被 "编译" 成 js ,存储在项目的 libs 目录里。

没有这些 js 游戏是跑不了的,但是每个人编译时,由于编译选项不同,每个人的电脑编译出来的 js 里 都会有一些差异。

如果每次都上传这些 js 文件,是完全没必要的。

但是如果每次提交时,都根据目录 避开这些文件的提交, 这种方法又显得很蠢。


这时候需要 .gitignore 了。但是添加了 .gitignore 忽略这些路径后, 由于这个路径是已经增加到过仓库管理中,

所以尽管已经在 ignore 列表里,依然 会被 git trace 到每个文件的变化。


所以,这个时候需要 git rm --cache 来解决这样的问题.

正确的做法应该是: git rm --cached logs/xx.log ,然后更新  .gitignore  忽略掉目标文件,最后  git commit -m "We really don't want Git to track this anymore!"


---实战-关联本地分支到服务器分支 ---

git branch -a   列出所有分支

git  checkout -b test   (创建并切抽象到test本地分支 即:git branch test 他建test 本地分支  git checkout test  切换到test分支)

git branch --set-upstream-to origin/devtest test  (关联本地分支test  到服务器分支devtest)

远程分支在前,本地分支在后。关联之后就可以正常的pull代码了。



---合并分支 ---

对于复杂的系统,我们可能要开好几个分支来开发,那么怎样使用git合并分支呢?

合并步骤:

1、进入要合并的分支(如开发分支合并到master,则进入master目录)

git pull

2、查看所有分支是否都pull下来了

git branch -a

3、使用merge合并开发分支

git merge 分支名

4、查看合并之后的状态

git status 

5、有冲突的话,通过IDE解决冲突;

6、解决冲突之后,将冲突文件提交暂存区

git add 冲突文件

7、提交merge之后的结果

git commit 

如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;

8、本地仓库代码提交远程仓库

git push

 

git将分支合并到分支,将master合并到分支的操作步骤是一样的;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值