git入门笔记
目录
1.create repository
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
使用命令git add <file>,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>,完成。
2.时光穿梭机
2.1 版本回退
HEAD >> current version
HEAD^ >> 上一个版本
HEAD^^ >> 往上第二个版本
HEAD~100 >> 往上第一百个版本
### git log
git log --pretty=oneline --abbrev-commit
查看commit history,当前session
### git reflog
查看commit history,所有的
### git reset --hard versionid
根据上面2个命令可以查到历史的版本号,然后进行回退。
2.2工作区(Working Directory)& 版本库(Repository)
2.3 管理修改
### git add
Put the file into stage area
### git commit
Put the change into 版本库
### git diff HEAD --readme.txt
Compare diff between HEAD version and working Directory
2.4 撤销修改
### 丢弃在工作区里面的修改
git checkt out -- readme.txt
** git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
### 如果修改已经add 到stage,未commit到版本库。使用下面的命令可以把修改回退到工作区
git reset HEAD readme.txt
### 如果修改已经commit到本地版本库,需要使用回退指令
git reset --hard versionid 可以
2.5 删除文件
###如果要删除一个文件
Git rm readme.txt
Git commit -m 'delete readme.txt'
### 这个时候如果发现自己的删错文件了。
Git reset reset HEAD^ readme.txt//这时Head指针指向了上一个版本,这个版本是还没有删除readme.txt的。
Git checkout -- readme.txt //这个命令会把当前HEAD指向的颁布替换工作区的版本
3.远程仓库
3.1添加远程仓库
### 关联一个远程库
git remote add origin git@server-name:path/repo-name.git
Example:
git remote add origin https://alm-github.systems.uk.hsbc/45027056/git-study.git
### 第一次推送master
Git push -u origin master
### 以后推送代码
Git push origin master
3.2 克隆远程仓库
### 克隆github上面已经有的项目(指定分支)
Git clone -b branch_name https://alm-github.systems.uk.hsbc/45027056/git-study.git
使用GitHub向开源项目提交代码
>> 先fork自己感兴趣的项目
>> fork后自己的repository就会有一份开源的代码
>> clone到本地进行开发,提交代码回到自己的repository
>> pull request到开源项目共享代码
4. 分支管理
### 新建分支
Git branch <branchname>
### 切换分支
Git checkout <branchname>
### 新建同时切换
Git checkout -b <branchname>
### 查看所有分支
Git branch
### 合并分支
例如把dev分支合并到master
Git checkout master
Git merge dev
*** 如果没有冲突,master分支会直接commit到本地版本库
*** 如果有冲突,需要先处理冲突,然后add >> commit
### non-ff合并分支
git merge --no-ff -m "merge with no-ff" dev
*** 加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
### 命令可以看到分支合并图。
git log --graph
git log --graph --pretty=oneline --abbrev-commit
### 删除分支
Git branch -d <branch name>
### 删除分支 forced
Git branch -D <Branch>
### 保存现场
加入目前新建了一个cardless-bug1分支,用于改Cardless的bug
Git checkout -b cardless-bug1
bug比较难,需要很长的时间去改。现在领导让你去处理一个紧急的bug,你不能commit,想先暂存起来,然后去处理紧急的bug,这时候可以使用
Git stash,它会把当前分支的改动暂时存储到一个区域。
切换回master分支
然后拉一个紧急bug的分支
Git checkout master
Git checkout -b urgent-bug1
….
处理好urgen-bug1后,需要想回去继续改cardless-bug1,
Git checkout cardless-bug1,
Git stash list
git stash apply,恢复现场
git stash drop,删除现场
Gig stash pop,恢复同时删除现场
5.标签管理
标签可以理解为Git版本库的快照,但其实它就是指向某个commit的指针
### 查看所有标签
Git tag
### 查看某个标签的详情
Git show v0.1
### 新建标签,带说明信息,指定commitid。
git tag -a v0.1 -m "version 0.1 released" 1094adb
*** 标签默认都是打带本地的。如果需要推送到remote,需要使用命令
>> git push origin <tagname>
>> git push origin --tags
### 简单新建标签
Git tag <tagname>
### 删除本地标签
Git tag -d v0.1
### 删除远程标签
>> 1.delete local tag
Git tag -d v0.1
>> 2.push to delete remote tags
git push origin :refs/tags/v0.1
6.名词解释
Untracked:未被添加过
Origin:远程库的名字
Fast-forward:快速合并
7.参考
posted on 2019-05-16 22:25 lukelin1989 阅读(250) 评论(0) 编辑 收藏 举报