Git Guide之basic篇
Basic
git add <filename> :添加到缓存区
git commit -m "代码提示信息" :提交改动到HEAD,但还没到你的远端仓库
git push origin master (可以把master换成想推动的任何分支):推送改动从本地仓库HEARD到远端仓库
git remote add origin <server> :连接本地仓库到某个远程服务器
---------分支操作----------
*分支用来将特性开发绝缘开来。master是默认的分支,在其他分支上进行开发,完成后再将它们合并到主分支
git checkout -b branch_name :创建一个叫branch_name的新分支,并切换到此分支
git checkout master: 切回主分支
git branch -d branch_name:删掉新建的分支
git push origin <branch> :推送到远端仓库(除非你将分支推送到远端仓库,否则其不为他人所见)
----------更新与合并----------
git pull 更新本地仓库至最近改动
git merge <branch> 合并其他分支到当前分支
出现冲突时,需要修改文件来手动合并冲突,改完后执行命令git add <filename>
合并改动前,可以使用命令预览差异:git diff <source_branch> <target_branch>
-----------标签----------
git log 获取ID
git tag <version><ID>
---------log------------
git log 查看本地仓库的历史记录
git log --author=xxxx 只看某个人的提交记录
git log --pretty=oneline 显示每条记录只占一行的输出
git log --graph --oneline --decorate --all 树形结构展示所有分支,每个分支都表示了他的名字和标签
git log --name-status 看看哪些文件改变了
---------替换本地改动-------------
操作miss时用命令替换掉本地改动:git checkout --<filename>
*此命令会使用HEAD中的最新内容替换掉你工作目录中的文件,已添加到缓存区的改动以及新文件不会受影响
丢弃本地的所有改动和提交,可以到服务器上获取最新的版本历史,并将本地文件指向它:
git fetch origin
git reset --hard origin/master
-------------实用小贴士------------
gitk 内建的图形化
资料
http://marklodato.github.io/visual-git-guide/index-zh-cn.html
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。https://zachholman.com/posts/how-github-works-hours/
https://zachholman.com/posts/how-github-works-asynchronous/
http://www.runoob.com/w3cnote/git-guide.html
https://help.github.com/
http://think-like-a-git.net/
补充
git config --list 检查已有的配置信息
基本操作流程
Step/ID | command | remark | related others |
---|---|---|---|
1. |
mkdir <name> pwd |
创建子目录 显示当前目录 |
|
2. |
git init | 把这个目录变成git可以管理的仓库 | |
3. | git add <file> |
|
|
4. | git commit -m "description" | 提示说明 | |
5. | git status | 仓库当前的状态 | |
6. | git diff | 查看不同 | |
7. | git log | 查看历史记录 | git log --pretty=oneline 查看缩略版的历史记录 |
8. | git reset --hard HEAD^ | 回退到上一版本,HEAD后可以是commit_id | |
9. | git reflog | 用来记录你的每一次命令,找到commit_id回到未来某个版本 | |
10. | git diff HEAD – <file> | 查看工作区和版本库里面最新版本的区别 | |
11. | git checkout – <file> | 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除 | |
12. | git reset HEAD <file> | 把暂存区的修改撤销掉,重新放回工作区,用HEAD时,表示最新的版本 | |
13. | git rm | 用于删除一个文件 | |
14. | ssh-keygen -t rsa -C "youremail@example" |
创建SSH Key | |
15. |
|
关联github远程库 | |
16. | git push - u origin master/git push origin master | 推送到远程库 | 第一次用韩语-u的命令,推送master分支的所有内容 |
17. | git clone git@github.com:xxxxx | 克隆一个本地库 | |
18. | git checkout -b <branchname> | 创建分支 | |
19. | git branch | 列出所有分支(当前分支前会有一个*号) | |
20. | git checkout master | 切换到master分支 | |
21. | git merge dev | 合并制定分支到当前分支 | |
22. | git branch -d dev | 删除dev分支 | |
23. | git log --graph | 查看分支合并图 | |
24. | git stash | 把当前工作现场"储藏"起来,等以后恢复现场后继续工作 | git stash list 查看工作现场 git stash pop 恢复的同时把stash内容也删了 |
25. | git branch -D <name> | 强行删除一个没有被合并过的分支 | |
26. | git remote | 查看远程库的信息 | git remote -v 显示更详细的信息 |
27. | git push origin branch -name | 从本地推送分支,如果推送失败,先用git pull抓取远程的新提交 | |
28. | git pull | 把最新的提交抓取下来 | 如果提示"no tracking information",则说明本地分支和远程分支的链接关系没有创建 |
29. | git tag <name> | 打一个新标签,默认标签是打在最新提交的commit上 | git tag <name> <commit id> 找到历史提交的commit id, 可以给历史版本打标签 |
30. | git tag | 查看所有标签 |
第一步:新建分支
//获取主干最新代码
git checkout master
git pull
//新建一个开发分支cindy
git checkout -b cindy
第二步:提交分支commit
git add --all(保存所有变化)
git status(查看发生变动的文件)
git commit --verbose(列出diff结果)
第三步:撰写提交信息
commit
提交commit时,必须给出完整扼要的提交信息,下面是一个范本。
Present-tense summary under 50 characters
* More information about commit (under 72 characters).
* More information about commit (under 72 characters).
http://project.management-system.com/ticket/123
第一行是不超过50个字的提要,然后空一行,罗列出改动原因、主要变动、以及需要注意的问题。最后,提供对应的网址(比如Bug ticket)。
第四步:与主干合并
git fetch origin
git rebase origin/master
第五步:推送到远端仓库
git push
第六步:发出Pull Request
提交到远程仓库后,就可以发出Pull Request到master分支,然后请求别人进行代码review,确认可以合并到master。
