GIT学习笔记

来源:互联网 发布:时标网络的绘制步骤 编辑:程序博客网 时间:2024/06/03 20:38
1.安装Git
ubuntu: sudo apt-get install git (老版本ubuntu + sudo apt-get install git-core)
Mac OS: http://brew.sh/
Windows: 下载msysgit https://git-for-windows.github.io
安装完成后,进行设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"


2.创建版本库repository
cd到想要创建成版本库的本地目录
git init


3.把文件添加到版本库
cd到本地版本库
git add filename
git commit -m 'message'


git diff filename
git log 查看最近提交信息
git log --pretty=oneline 以一行信息简化展示log信息


版本回退
(1)通过头信息回退git reset --hard HEAD^
HEAD表示当前目录,HEAD^表示当前版本的上一个版本,HEAD^^上上个版本,HEAD~100当前之前第100个版本
(2)通过版本号回退git reset --hard 3655278
1=>2=>3
从3回退到2,然后后悔了,想回到3,使用git reflog查看最近commit的版本号,再通过(2)方法回到3


工作区和暂存区
本地init git的文件目录就是一个工作区,工作区有一个.git文件,是GIT版本库.
版本库包含stage(index)的暂存区,还有git自动创建的分支master,以及指向master的一个指针HEAD;


撤销修改
git checkout -- filename
两种情况:
(1)file还没有add到暂存区
(2)file已经add暂存区后做了修改


删除文件
git rm filename
git commit -m "message"


远程仓库
在用户主目录下查看.ssh目录,如果有,看一下文件中是否存在id_rsa和id_rsa.pub两个文件,如果已经
存在,可以跳过,如果不存在,创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
生成.ssh后,找到.id_rsa.pub文件
登录GitHub,打开Account settings, SSH Keys=>add ssh key
将.id_rsa.pub文件中的内容复制进去


添加远程库
目的:让本地git仓库和github创建的git仓库同步
登录github, 找到create a new repo按钮,创建一个仓库,
添加repository name=>create repository
(1)克隆github仓库到本地
cd到本地仓库,
git clone git@github.com:githubname/name.git
(2)将本地仓库推送到github
git remote add origin git@github.com:githubname/name.git
下一步,把本地库所有内容推送到远程库
git push -u origin master


分支管理
创建与合并分支
git checkout -b develop 创建后并且切换到develop分支
相当于
git branch develop + git checkout develop
使用git branch查看所有分支
案例:创建分支develop,切换到分支develop,在develop添加readme.txt文件,切换回master分支,合并到master分支
git checkout -b develop
git add readme.txt
git commit -m "message"
git checkout master(此时看不到readme.txt文件)
git merge develop(合并分支)


删除分支:git branch -d develop


解决冲突
手动解决冲突,再add+commit
git log --graph查看分支合并图


自己总结的从远程拉代码解决冲突的方法
git status
gitg
git stash
git pull -r ==> solve confict ==> gitg ==> add file ==> close gitg
git rebase --continue
git push origin develop
git stash pop


分支管理策略
master用来发布新版本,平时不在上面提交代码;
在develop分支中,提交代码,当开发的代码可以上线了,版本1.0出来了,可以合并分支develop到master
git stash => git checkout master => git stash pop => git reset Head


新创建的一分支feature,在该分支,添加了新的功能后,切换到develop分支,但是此时,新功能不需要了,还没有merge分支,
可强行删除分支:git branch -D feature


推送分支
就是吧所有本地提交commit推送到远程库,这里要制定本地分支,与远程分支对应
git push origin develop


传见远程origin的develop分支到本地
git checkout -b develop origin/develop


冲突案例:
用户1add file + commit => 失败,原因:此时用户二提交了新东西
用户1git pull -r
拉下来有冲突,手动解决冲突,git add + commit,
然后push


创建标签
切换到需要创建标签的分支,一般为上线分支master
git tag v1.0
git tag 查看所有标签
给历史提交打标签 git tag v1.1 235563(commit id)
git show v1.1 查看tag信息
创建带文字说明的tag
git tag -a v0.1 -m "message" 3756789(commit id)
删除标签
git tag -d v0.1
推送标签到远程
git push origin v0.1
或者一次性推送全部未推送到远程的本地标签
git push origin --tags


删除远程标签
(1)删除本地标签 git tag -d v0.1
(2)从远程删除 git push origin :refs/tags/v0.1


使用github
配置别名:git config --global alias.st status





0 0