您的位置:首页 > 其它

个人整理git的基本用法

2017-11-27 09:39 465 查看
完整看完廖雪峰的git教程,把主要过程自己写一遍,开始自己的第一篇博客

1、在一个空文件夹 

$ git init
创建git的管理仓库

2、把文件添加到仓库

$ git add [file_name]
没有任何显示则表示成功

3、把文件提交到仓库

$ git commit -m "[附带信息,提示本次修改]"

[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt


成功时类似以上格式

4、提交所有文件

$ git add .
把文件夹下所有文件提交

5、查看工作区状态

$ git status

6、查看修改内容

$ git diff

7、查看历史纪录

$ git log
记录中带有commit id,是每次提交的id,用于版本回退

8、版本回退

$ git reset --hard HEAD^
回退一次

$ git reset --hard HEAD^^
 回退两次

$ git reset --hard HEAD~100
回退一百次

$ git reset --hard [commit_id]
回退到具体版本

9、查看命令历史

$ git reflog
确定退回版本

10、撤销改动
1 撤销工作区的改动

$ git checkout -- [file_name]

2 撤销暂存区的改动

$ git reset HEAD [file_name]

3 撤销版本库的改动,则采用版本回退,前提是没有推送到远程库

11、删除文件
1 删除工作区文件

$ rm [file_name]
删除工作区
2 确定要从版本库中删除文件,则

$ git rm [file_name]

并且

$ git commit
则文件从版本库中删除

3 误删文件,恢复

$ git checkout -- [file_name]
git checkout的本质是用版本库里的版本替换工作区的版本

12、远程仓库
1 Git本地仓库和Github仓库之间的传输通过SSH加密
创建SHH key

$ ssh-keygen -t rsa -C "[email]"
生成的key可以在.ssh文件夹下找到 id_rsa.pub公钥文件,并在github上添加ssh key

2 Git本地仓库连接远程仓库 

$ git remote add origin [project_name]
远程库的默认名字就是 origin

3 把Git本地仓库的所有内容推送到远程库上

$ git push -u origin master
实际上是把当前分支master推送到远程
-u 参数 把本地的master分支内容推送到远程的master分支,并且把本地master和远程master关联,以后推送和拉取都可以简化命令
往后提交,可以通过

$ git push origin master
把本地master分支的修改推送到Github

SSH警告
第一次使用Git的clone或者push,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.

RSA key fingerprint is xx.xx.xx.xx.xx.

Are you sure you want to continue connecting (yes/no)?

需要确认Github的key的指纹信息是否真的来自github服务器,输入yes即可
然后Git会输出一个警告,告诉github已经把key添加到本机的信任列表

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.


13、从远程库克隆
从github上把项目克隆到本地仓库

$ git clone [project_name]
项目地址采用ssh支持的原生git协议速度最快

14、git的分支 , git鼓励大量使用分支
1 创建分支 切换分支

$ git branch [branch_name] 创建分支
$ git checkout [branch_name] 切换分支

以上操作可以合并

$ git checkout -b [branch_name]

2 查看当前分支

$ git branch
3 合并指定分支到当前分支

$ git merge [branch_name]

4 删除分支

$ git branch -d [branch_name]

15、分支冲突
当a分支和b分支各自都分别又新的提交





当我们想要合并分支,会产生冲突,$ git status 可以告诉我们冲突的文件,也可以直接查看冲突文件
需要手动修改

$ git log --graph --pretty=oneline --abbrev-commit
可以查看分支的合并情况
16、分支管理策略
想要查看分支合并信息需要关闭Fast forward模式

$ git merge --no-ff -m "[提交信息]" [branch_name]
master 分支应该是稳定,用于发布版本
平时工作都在自己的分支,分支不稳定
17、Bug分支
当前工作无法完成但是需要创建分支修复bug时,可以输入

$ git stash
保存当前的工作现场

1 查看保存的工作现场

$ git stash list
2 恢复现场

$ git stash apply
3 删除保存的现场

$ git stash drop
以上操作可以合并

$ git stash pop

18、强制删除没有被合并的分支

$ git branch -D [branch_name]

19、多人合作
1 查看远程库的信息

$ git remote

2 查看更详细的信息

$ git remote -v

3 推送分支

$ git push origin [branch_name]
一般推送主分支master 和自己的工作分支

20、创建远程分支

$ git checkout -b [branch_name_local] origin{远程库的名字}/[branch_name_online]

21、多人合作工作模式
1 向服务器推送自己的修改

@ git push origin [branch_name]
2 如果推送失败,因为远程分支比本地的更新,需要先

$ git pull
3 合并,如果有冲突,则需要本地解决冲突并提交
4、再次进行1推送
如果git pull 提示“no tracking information"说明本地分支和远程分支的链接关系没有创建,需要用命令
$ git branch --set-upstream [branch_name_local] origin/[branch_name_online]

22、创建标签
先切换到打标签的分支上 ,创建标签使用

$ git tag [tag_name]

查看标签

$ git tag

查看历史提交的commit id

$ git log --pretty=oneline --abbrev-commit
根据commit id打标签

$ git tag [tag_name] [commit_id]
查看标签信息

$ git show [tag_name]
创建带有说明的标签 用-a提交标签名,-m指定说明文字

$ git tag -a [tag_name] -m "[说明文字]" [commit_id]

删除标签

$ git tag -d [tag_name]

推送标签到远程

$ git push origin [tag_name]
推送所有标签到远程

$ git push origin --tags

删除远程标签
1 首先本地删除

$ git tag -d [tag_name]
2 从远程删除

$ git push origin :refs/tags/[tag_name]

23 使用github
可以通过”Fork“克隆一个库到自己的账号下,修改自己的库后,在github发起一个pull requset

24 关联远程库中的相关问题
本地仓库与远程仓库关联

$ git remote add origin [项目地址]
如果在git remote add 时出错:

fatal: remote origin already exists.


说明本地库已经关联了一个叫origin的远程库,此时可以先用

$ git remote -v

删除已有 的远程库

$ git remote rm origin{远程库名字}
再次关联

25 初次推送到远程库可能出现的错误

failed to push some refs to git

主要是readme.md文件不在本地文件夹
可以通过以下的命令合并,pull = fetch + merge

$ git pull --rebase origin master
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: