Git使用教程

41 篇文章 0 订阅

总论:Git是一个强大的分布式版本控制工具,其最大的特点就是可以轻松的创建分支,细化到每一个bug的修复。从而保证了每一次的项目迭代,都不影响上一次已经发版的版本,有利于敏捷的开发方式。下面,我就总结一下常用的git命令:

 

一.创建

1.git init:                 在某个文件夹路径下输入该命令,自动产生git版本控制文件夹

2.vi  <文件名>:      在当前路径下创建一个文件

   i:                        编辑这个文件                    esc:退出编辑状态            :wq :保存修改并回到命令行界面

   pwd:                    查看mac文件路径             cd:进入某个文件夹路径     cd .. 回到上一个文件夹路径

3.git add <文件名>:  添加文件到暂存区域,从而commit

4.git commit -m <"message">:提交这一次修改到本地版本库,并设置备注信息

5.git status:              查看工作区的状态

6.git diff:                  查看修改内容

 

二.版本穿梭(版本回退)

1.git reset --hard commit_id:    穿梭到指定commit的版本

2.git log:  git log --pretty=oneline:查看之前版本的信息

3.git reflog:查看本版本之后提交的版本信息

 

三.工作区

1.git checkout  --<文件名>:    丢弃工作区中该文件的修改(前提是该文件已经在版本库了)      

2.git reset HEAD <file>-->git checkout -- <file>:    当修改已经add进入暂存区,撤销本次操作

 

四.删除文件 

1.git rm <file>:          删除文件(前提是该文件在工作区与版本库中是没有变化的)

2.git remote -v:        查看远程库信息

3.git remote add origin <远程库ssh>:关联一个远程仓库

4.git remote rm origin:                    删除与远程仓库的链接

5.git push -u origin master:               第一次推送master分支到远程的master

git push master dev:dev                    把本地的dev分支推送到远程的dev分支,没有就创建

6.git clone <远程库ssh>:                    克隆远程仓库到本地(正常第一都会失败,第二次就成功了)

 

五.合并分支

1.git branch:                                    查看分支

2.git branch <分支名>:                    创建分支

   git branch -d <分支名>                  删除分支

3.git checkout <分支名>:                   切换分支

4.git checkout -b <name>:                创建并且切换分支

5.git merge <分支名a>:                      合并分支a到当前所处的分支

6.git log --graph --pretty=oneline --abbrev-commit:    查看分支的合并情况

7.git log --graph:                              查看分支合并图

有时候从版本库clone下来的显示只有master分支,则通过git branch -av就可以看到版本库所有的分支了,就可以

进行切换了。git checkout 分支名字,前提是你知道了服务器端的分支的名字。

 

六.bug分支

1.git stash:                 保存当前的工作现场,方便下回切换回该分支后继续工作(一般用于紧急bug修复的场景下)

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d96 

 6923e5c4134bc8bf98dfb03aea3000

2.git stash pop:          恢复保存的工作状态,并从“工作现场栈”中删除本次保存的工作现场数据

 

 

七.多人协作

1.git remote:                查看远程库的信息

2.git remote -v:           查看更加详细的远程库信息

3.git push origin <本地分支名>:       推送本地分支到远程

注意:直接的跨越分支推送(如把本地dev直接推送到远程的master)是不错在的,只有在本地先合并dev到master,再把本地的master推送到远程的master。

4.git checkout -b <本地分支名> origin/<远程分支名>:在本地创建和远程分支对应的分支(名字最好保持一致)

5.git branch --set-upstream-to=origin/dev dev:        指定本地的dev分支与远程dev分支进行连接。一般上面那个操作后需要做这一步操作,实现本地与远程的关联。

6.git pull origin dev:dev_zhangqi                       从远程dev拉取数据代码与本地dev_zhangqi进行合并

7.git push origin dev:dev_zhangqi:                      向远程dev推送数据本地的dev_zhangqi

 

八.标签操作

1.git tag <标签名>:        默认在Head上新建标签

2.git tag <标签名> commitId:    在对应的commitId上建标签

3.git tag:                        查看所有标签

4.git show <标签名>:        查看某个标签的详细信息

5. git tag -a <标签名> -m "标签信息":指定标签信息(我也不知道怎么看到这些指定的信息)

6.git tag -d <标签名>:删除本地标签

7.git push origin:refs/tags/<标签名>:删除本地标签  

8.git push origin <标签名>:推送一个本地标签

9.git push origin --tags:    推送所有未推送的本地标签

 

九.其他操作

1.git config --global color.ui true:    设置git命令行打开颜色提示功能

2.git config user.name:                    查看git用户的用户名信息

3.git config user.email:                    查看git用户的邮箱信息

4.git add -f <文件名>:                    强制添加该文件到版本库

5.git check-ignore -V  <文件名>:        检查该文件对应于.ignore中的某条忽略设置

6.git通过打patch的方式合并多个commit提交作为一个:

g format-patch -n:打n个patch,根据最新的提交进行,结果会出现

   0001-fix-1001-Using-eventbus-in-view-to-modify-the-number.patch

   0002-fix-1001-delete-eventbus-in-LessonEndView.patch

   0003-fix-1001-delete-handler-in-LessonEndView-to-prevent-.patch

git reset --hard  "commit id":回退到想要合并的几次提交前的那一次提交

g am -3 0001-fix-1001-Using-eventbus-in-view-to-modify-the-number.patch

g apply 0002-fix-1001-delete-eventbus-in-LessonEndView.patch

然后再回退

git reset --hard  "commit id":回退到想要合并的几次提交前的那一次提交

然后只apply

g apply 0001-fix-1001-Using-eventbus-in-view-to-modify-the-number.patch

g apply 0002-fix-1001-delete-eventbus-in-LessonEndView.patch

然后commit ,再push.

 

7.合并分支,简化提示

git merge --squash xxx

git commit -m "修改了bug某某某"

8.修改某次commit的message

git rebase -i HEAD~n 将会出现n条你最新的提交,按最新提交时间入栈,最新的在栈底。

把你想要修改的commit的message前面的pick改为reword ,同时修改commit的信息,退出修改后完成

9.如何解决reset --hard之后的commit

git relog 列举出所有的最近Git修改,每一条修改的开头都会有一个版本号,

git reset 版本号将可以找回那一次的修改

 

10

提示“Enter passphrase for key /root/.ssh/id_rsa.pub”让输入私钥,可不论输与不输都不能直接登录

解决方法: 
在本地执行:

eval `ssh-agent` 
ssh-add
ssh-agent是用于管理密钥,ssh-add用于将密钥加入到ssh-agent中,SSH可以和ssh-agent通信获取密钥,这样就不需要用户手工输入密码了。 
顺序执行以上两条命令后就可以用ssh免密登录远程机器了,但这个配置只对当前会话生效,会话关闭或机器重启后都需要重新执行这两条命令。将命令放到~/.bash_profile中,就可以免去每次输入的麻烦。
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值