目录
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.参考
https://www.liaoxuefeng.com/wiki/896043488029600
来源:https://www.cnblogs.com/codetree/p/10878478.html