Git:Getting started

版本管理:

SCCSunix的标准

RCSgnu的版本控制系统,适合个人本地开发

CVS:适合联网开发

SVN(开源):subversion,并发式版本控制系统,取代CVS

GIT(开源):分布式版本控制系统,适合linux开发

###############################################################

Git:它是一个免费的、分布式的版本控制工具

gitlinux客户端gitk


新版本系统安装:

sudo apt-get install git

sudo apt-get install gitk

旧版本安装:

sudo apt-get install git-core


添加自己的姓名和邮箱:

git config --global user.name “yourname”

git config --global user.email “youremail


-----------------------------------------------------------------------------------------------

如果要使用github需要到网站注册:

  1. 注册github帐号

  1. 在本地创建sshkey并复制公钥

ssh-keygen -t rsa -C youremail

eval"$(ssh-agent -s)"

ssh-add~/.ssh/id_rsa

xclip -sel clip < ~/.ssh/id_rsa.pub

  1. github网站添加~/.ssh/id_rsa.pub并验证

###############################################################

上传自己的项目:


1.完成自己本地的项目


2.github创建自己的仓库获取仓库地址:

git@github.com:XXX/XXX.git


3.上传本地已完成的项目

cd project-dir/


创建本地仓库:

git init


git add -A .

git commit -a -m “string”


将当前仓库和远程仓库地址关联,并为远程仓库取名:

git remote add repo_name(origin) git@github.com:XXX/XXX.git
(同一个远程仓库地址可以有多个远程仓库)
git remote -v #查看远程仓库地址上的所有仓库信息
git remote show repo-name #查看远程仓库信息
git remote rm repo-name #删除远程仓库
git remote rename old-repo-name new-repo-name #重命名远程仓库
将当前分支推送到远程仓库的指定分支:
git push -u repo_name(origin) local_branch(master)
git@github.com:XXX/XXX.git


-----------------------------------------------------------------------------------------------

参与一个开源项目:


1.fork一个分支仓库,获取地址url

2.将远程fork的仓库克隆到本地:

cd project_dir/

git clone git@github.com:XXX/XXX.git


3.在本地fork一个开发分支并进行开发:

git checkout -b local_branch

git branch -r #查看远程分支

git branch -a #查看本地和远程的所有分支


4.将远程分支取回到本地分支

将远程仓库的所有分支取回到本地

git fetch repo_name(origin)

将远程的仓库的指定分支取回到本地的当前分支

git fetch repo_name(origin) remote_branchmaster


将远程的仓库的指定分支取回到本地与本地指定分支合并

git pullrepo_name(origin) remote_branch(master)local_branch(master)

如果本地和远程都只有一个仓库:

git pull

如果指定远程仓库和本地对应的仓库都只有一个分支:

git pullrepo_name(origin)

如果本地分支就是当前分支(或本地只有一个分支),本地分支和冒号可省略

git pullrepo_name(origin) remote_branch(master)


5.将本地的开发分支和本地的主干合并

将当前分支合并到主干master

git merge master


6.将本地分支上传到远程分支

将本地的分支上传到远程的仓库的指定分支

git push repo_name(origin) local_branch(master):remote_branch(master)

如果远程只有一个分支:

git pushrepo_name(origin) local_branch(master)


git pushrepo_name :remote_branch #删除远程分支

git pushorigin - - delete remote_branch(master) #删除远程分支


7.github请求pullrequests


###############################################################

git的具体用法:


将新增文件和修改之后的文件添加到索引:

git add -A

git add .    

git add -A .

git add -u #添加追踪的文件到索引,忽略未追踪的文件

git add -i #查看被修改或删除但没有提交的文件


git diff #提交前可以查看更改


将索引中的变化提交到仓库中的主干或分支:

git commit -a

git commit -m “string” 

git commit -a -m “string”

查看仓库当前状态:

git status

-------------------------------------------

git branch branch_name #创建一个分支

git checkout branch_name #切换到创建的分区

git checkout -b branch_name #创建分支并切换到该分支

git branch #显示分支,查看当前分支


git checkout master #切换到主干master

git merge branch_name #合并分支

git merge --no-ff -m “string” branch_name

git branch -d branch_name #分支合并到主干后删除分支

git branch -D branch_name #强行删除分支


git status #可以查看合并时出现的冲突

git log #查看分支合并的情况

git log --graph --pretty=online --abbrev-commit


--------------------------------------------------

git stash #隐藏当前的工作区


从当前分区切换到某个分支紧急修复bug,在该分支创建一个分支来修复bug

修复完成后合并,然后再返回到原来的工作分区。


git stash list #查看隐藏的工作区

git stash apply #恢复

git stash pop #同上


-------------------------------------------------

git log v3…v5 #显示在v3v5之间的历史记录

git log branch1..branch2#显示在branch2中但不在branch1中的历史记录

git log -since=”2 weeks ago” #显示2周的历史记录


git show branch_name #根据分支名查看详细信息

git show 385eb3bad99c18d2aee08716f8b4c1ba11bff112 #根据commit名查看更详细的信息,也就是HEAD

git show HEAD #同上,HEAD是当前的commit


git show HEAD^ #查看上一次的commit信息

git show HEAD^^ #查看上上一次的commit信息

git show HEAD~n #查看从第n代的信息

git show HEAD^1 #查看第一个父母

git show HEAD^2 #查看第二个父母


git tab new_name old_name #给复杂名称取别名


git grep pattern dir #dir中搜索包含pattern的行


--------------------------------------

直接从版本库删除文件

git rm filename


错误删除了当前工作区的文件,但是还没有commit,版本库还有,可以恢复:

git checkout - - filename #从版本库恢复到当前工作区


在当前分支获取branch_name分支的filename文件。

git checkout branch_name -- filename   


未完待续......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值