git快速入门和常用命令总结

Git简介

虽然大家都知道git是什么,但是还是简单介绍一下。git是一个分布式版本控制系统,主要用来管理文本文件,包括各种代码,配置文件,文本文档等,git可以建立远程仓库和本地仓库,对每次提交(commit)的内容进行记录,方便快速查看更改以及版本切换,并且可以进行多分支管理,方便进行团队开发和不同版本修改。当然,git也有缺点,主要是没有代码保密性。

放在前面,非常推荐一个图形化git学习网站
所有的git操作都能够直观显示,而且可以像游戏一样进行闯关模式,完成指定的git操作即可通关!!!

Git安装

可以直接登陆官方网站进行下载安装。
ubuntu系统使用命令:
sudo apt-get install git
进行安装。
centos使用:
sudo yum install -y git

Git配置

安装完成后需要进行git配置,首先你要告诉git你是谁,然后还得设个密码。
设置用户名:
git config --global user.email "你的邮箱"
当然也可以使用user.name设置用户名,但是方便其他使用这个代码的人联系你,最好是使用邮箱。
由于git通过ssh访问资源库,所以需要设置公钥:
ssh-keygen -C "你的邮箱" -t rsa
会在目录~/.ssh/下建立相应的密钥文件。然后在相应的代码平台如github\isource\gerrit上面添加你的公钥,也就是~/.ssh/id_ras.pub的内容。
接下来我们就可以愉快的使用git搬砖了!
当然,不使用代码平台,只在本地进行文件管理也是可以的!

Git提交

首先进行本地仓库初始化:
git init
这样git会在当前文件夹下面创建一个.git的文件,用来管理当前文件夹。接下来可以使用:
git status
查看当前本地状态,如果文件夹下面有其他文件,git会提示有未跟踪的文件,如果要让git开始跟踪管理这个文件,使用:
git add 文件名
如果要让git停止管理这个文件,使用:
git rm --cached 文件名
接下来可以对跟踪的文件内容进行修改,如果想查看修改的内容变动,使用:
git diff
可以看到对比之前修改的部分,修改后,如果要撤销修改,使用:
git checkout 文件名
如果要记录这次修改并保存,重新使用:
git add 文件名
来记录修改,然后提交:
git commit -m "提交信息"
提交信息主要用来区分不同的commit,因此要写的简洁清晰。git会为每个commit生成一个commitID,类似哈系表的key,如果要查看commit历史,使用:
git log
按q退出。如果要把当前的commit推送到远程仓库,使用:
git push origin 远程分支名
这就是git commit的基本操作。

Git分支

如果我们正在愉快的开发一个版本,然后测试报给我们一个bug,比较好的做法是创建一个新的分支来修改bug,使用:
git branch
查看当前的分支情况,使用:
git branch 新分支名
创建一个新的分支,然后使用:
git checkout 分支名
切换到指定分支,也可以使用:
git checkout -b 新分支名
创建一个新分支并切换到新分支,然后,我们需要进行版本回退,如果需要回退到之前的一个commit来修复bug,使用:
git reset --hard commitId
commitID可以只使用前六位,注意,最好先保存当前的修改,不然虽然不会丢,但是追回还是有点麻烦的。然后我们可以进行bug修复,在修复完bug之后,我们需要合并这个commit,可以使用多种方法达到这个目的,第一是合并分支,首先切换到主分支,然后使用:
git merge 从分支
将从分支并入,如果同时修改了一个文件,这时候需要手动打开文件解决冲突,然后git add将文件加入暂存区,使用:
git merge --continue
继续完成合并操作,当然也可以使用:
git merge --abort
终止合并,使用:
git merge --skip
跳过冲突。
第二种合并的方法是使用cherry-pick,这个命令可以选择一个或者多个commit合并到当前分支,使用:
git cherry-pick commitId
将指定commit并入,它在遇到冲突时也支持continue\abort\skip选项。
第三种方法是使用rebase,这个命令顾名思义就是改变当前分支的祖先状态,假设我们之前的分支是fixbug,主分支是master,那我们需要在master分支使用:
git rebase fixbug
来合并修复bug的版本,它在遇到冲突时也支持continue\abort\skip选项。

其他操作

首先是合并多个commit,如果想要将当前的修改合并到上一个commit,而不是新提交一个,使用:
git commit --amend
如果不需要修改commit的内容,可以加上--no-edit选项。
如果想把多个commit合并成一个,可以使用:
git rebase -i 要合并的多个commit最前的commit的前一个commitID
然后会弹出一个commit选项,每个commit选项的意思也会在下面标记出来,pick就是保留当前的commit,squash就是将当前的commit合并到前一个commit,drop是丢弃当前commit,编辑完成后,按Esc,输入:wq保存退出即可。
如果因为git reset回到了一个版本,但是这时候使用git log看不到最新的commitID了,可以使用:
git reflog
查看在git上进行的操作以及所处的commitID,从而回到最新的commit。
暂时整理的常用git命令就是这些,如果遇到其他好的技巧或者命令再进行补充。

你可能感兴趣的:(工具,git,linux,github,ubuntu,centos)