博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT Learning
阅读量:4699 次
发布时间:2019-06-09

本文共 3123 字,大约阅读时间需要 10 分钟。

一、Why Git

1.1 Git是分布式的,本地的版本管理

    chect out代码后会在自己的机器上克隆一个自己的版本库,即使你在没有网络的环境,你仍然能够提交文件,查看历史版本记录,创建项目分支,等不需要远程或架设服务器就能做到本地版本管理.

1.2 不污染子目录的track文件

     svn每个子目录都要扔一个.svn.这个实在是.. .(我想很多人都碰到过svn lock folder的情况.实在让人气急败坏.实际上.svn文件就是罪魁祸首.各种clean up无果. delelte后svn up异常.真是.. 摔!.去你妹的svn.)

1.3 强大的branch

     超轻量级的branch建立.(实际只是建立文件指针).推荐根据的git workflow的开发流程.将workspace分成几区.master dev feature hotfix区等.开发层次就出来了.

1.4 merge工具的强力

    git根据commit ticket依次再进行一次merge.提高了merge成功率.避免svn merge中的难堪.即使merge失败.也不会生成乱七八糟的版本文件.简单修改后.commit就是.

二、 Git安装配置

2.1 安装
ubuntu: sudo apt-get install git
windows: 去  下载安装
2.2 配置文件

    你可以在.gitconfig文件中防止git的全局配置。文件位于用户的home目录。 上述已经提到每次提交都会保存作者和提交者的信息,这些信息都可以保存在全局配置中。

2.3 配置用户信息

 

         
# Configure the user which will be used by git# Of course you should use your namegit config --global user.name "Example Surname"# Same for the email addressgit config --global user.email "your.email@gmail.com"# Set default so that all changes are always pushed to the repositorygit config --global push.default "matching"

 

2.4 查看配置信息
         
git config --list
2.5 SSH Keys

    SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。

    生成sshkey

   

# Creates a new ssh key using the provided emailssh-keygen -t rsa -C "xxxxx@xxxxx.com"

 

    在~/.ssh/id_rsa.pub中是生成的public key,复制文件中的全部内容并把他添加到ssh公钥管理中, Git @ OSC 的公钥管理页面如下链接: .

三. Git库管理

3.1 clone
可以clone命令去clone别人公开的代码了。    
         
git clone git://git.kernel.org/pub/scm/git/git.git

 

   

3.2 创建仓库,添加文件,提交修改

 

   

# Initialize the local Git repositorygit init# Add all (files and directories) to the Git repositorygit add .# Make a commit of your file to the local repositorygit commit -m "Initial commit"# Show the log filegit log

 

    先添加修改文件到提交索引,之后才能进行提交。

 

3.3 添加远程库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]

         
$ git remote add pb git://github.com/paulboone/ticgit.git $ git remote -v     origin git://github.com/schacon/ticgit.git    pb git://github.com/paulboone/ticgit.git
3.4 从远程仓库抓取数据

    格式: git fetch [retmote-name]

   

git fetch pb

 

3.5 推送数据到远程仓库

    格式: git push [remote-name]

     git push origin test:master         // 提交本地test分支作为远程的master分支

     git push origin test:test              // 提交本地test分支作为远程的test分支

   

git push pb master:testing

 

3.6 分支
#新建分支testgit branch test                     #切换到test分支git checkout test                 #将本地的test推送到远端    git push origin test:test         #切换到master分支git checkout master             #将test分支合并到master分支git merge test                     #删除本地test分支git branch -d test              #左面为空,远程的test分支将被删除git push origin :test

 

四. SVN迁移到GIT

4.1 先建立users.txt,格式如下:

    gr = ge rui <>

4.2 或者通过以下命令获取用户列表(需要perl支持)
$ svn log --xml | grep -P "^
(.*?)<\/author>/$1 = /' > users.txt

 

4.3 获取svn版本库信息:
$ git svn clone http://192.168.135.115:8080/svn/fpp    --authors-file=users.txt --no-metadata -s fpp

 

4.4 将所有的旧分支都变成真正的 Git 分支,所有的旧标签也变成真正的 Git 标签

    进入到项目的目录,运行如下命令:

$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/$ rm -Rf .git/refs/remotes/tags$ cp -Rf .git/refs/remotes/* .git/refs/heads/$ rm -Rf .git/refs/remotes

 

4.5 新增远程服务器

 

git remote add myproject git@git.oschina.net:bairuiworld/myproject.git

 

4.6 让所有分支标签都上传
git push myproject --all

 

欢迎访问我的个人主页:

转载于:https://www.cnblogs.com/gr-nick/p/3391105.html

你可能感兴趣的文章
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
pip 警告!The default format will switch to columns in the future
查看>>
Arrays类学习笔记
查看>>
实验吧之【天下武功唯快不破】
查看>>
2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)...
查看>>
win7-64 mysql的安装
查看>>
dcm4chee 修改默认(0002,0013) ImplementationVersionName
查看>>
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>