【Git 总结】 Git基础--常用命令

Git 总结系列如下(感兴趣的赏个脸看一下呗):
Git基础–常用命令
Git进阶–版本控制管理
Git进阶–远程仓库,在Github上提交代码

1. 安装git

Linux控制台输入 git 如果没有安装则会有以下提示,输入sudo apt-get install git

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git 

Windows 系统前往Git官网
下载,或自行搜索下载。下载完成后默认安装即可,安装完成后,打开命令行(windows 下在任意地方右键Git Bash Here 也可以),输入git ,出现以下命令提示即为安装成功($ 符号为Git Bash 自带的符号)

$ git
usage: git [--version] [--help] [-C ] [-c name=value]
           [--exec-path[=]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=] [--work-tree=] [--namespace=]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

安装完成后,先全局(--global)设置一下用户名和用户邮箱,当然也可以在每个仓库内设置,将用户名和邮箱替换为你自己的就行了。

$ git config --global user.name yugengw
$ git config --global user.email yugengw@gmail.com

2. 创建代码仓库

可以在任意地方设置代码仓库,作为学习,你可以新建一个文件夹,随意创建几个文本文件或复制一些学习资料。首先使用cd 命令定位到你想要新建仓库的文件夹(windows 可以使用文件管理器,到某个文件夹,然后右键Git Bash Here),
比如我现在想要将E盘的learngit 作为git仓库

$ cd e:
$ mkdir learngit
$ cd learngit 

使用git init 将次文件夹初始化为一个git 仓库,并创建了master分支。

$ git init
Initialized empty Git repository in E:/learngit/.git/

这样就会生成一个.git 的隐藏文件夹,就是由这个文件夹来管理仓库。

3.常用命令

几个概念 :
工作区:我们正在操作的地方,任何修改都是在工作区
暂存区:当我们修改了文件后,并执行git add 命令就将工作区的修改放进暂存区,使工作区与暂存区一致。暂存区可以防止误提交,或将一些不想提交的修改隔绝在工作区里。
放进暂存区之后git commit 就可以将暂存区与上一次git commit不同的东西提交。

1.git status 最经常用的命令,用来查看仓库状态,工作区的修改,暂存区的修改等,并做一些命令提示。
【Git 总结】 Git基础--常用命令_第1张图片

2.git add 将工作区的修改放进暂存区 . 代表所有文件,使用相对路径/文件名.扩展名 添加某一文件。(对应的有一个命令git rm 用来从暂存区删除文件。当你在工作区删除一个文件后,git rm 到暂存区 相当于 git add 到暂存区。不过前者对应rm操作,后者对应modify操作。结果是一样的 )
add
【Git 总结】 Git基础--常用命令_第2张图片
3.git commit 将暂存区修改提交

commit

4.git log 查看此分支的每次commit,“532acfca…”这一串是每次commit 的id。
git log --pretty=oneline --abbrev-commit
--pretty=oneline 减少为只剩commit 那一行
--abbrev-commit 将commit id 长度只显示一部分
【Git 总结】 Git基础--常用命令_第3张图片

5.git diff 查看文件修改
直接使用git diff 比较工作区与暂存区文件差异.
首先修改一下文件,然后输入git diff
【Git 总结】 Git基础--常用命令_第4张图片
红色的部分前面有个 - 代表删除东西,绿色的部分前面有个 + 代表增加的东西。
git diff 具体命令:
git diff 比较工作区与暂存区文件差异
git diff <$id1> <$id2> 比较两次提交之间的差异
git diff .. 在两个分支之间比较
git diff --staged 比较暂存区和版本库差异。
6. git branch 新建分支,master分支理论上是不直接修改的,新功能的开发都是在新建分支上进行的,只有功能开发完成并测试后可以发布了才合并到master分支。
git branch a 新建分支a

git branch -d a 新分支合并到master分支后,已经没用了,就可以删除了。

git branch -D a 新分支若创建错了,或放弃了新功能的开发。想直接删除,使用上一个命令会提示分支尚未被合并,使用-D 强制删除,记住不要删错了哦。
7. git checkout 切换分支

git checkout a 切换到a分支
checkout
git checkout -b a这个命令的意思就是新建一个a分支,并且自动切换到a分支。(新建分支并切换)
8. 合并分支
新分支开发完毕后,就需要提交,然后进行合并,需要先把分支切换回主分支(这里就不截图了,参照上面),然后在主分支执行合并命令。
合并分支的命令有两个 git mergegit rebase
合并a 分支两种操作

git checkout master
git merge a
git checkout master
git rebase a

merge 直接合并,合并后是分叉的,但有冲突时只需要解决一次。(图片来自 git merge 和 git rebase 小结)
【Git 总结】 Git基础--常用命令_第5张图片
rebase 合并后提交记录为一条线,而且会把你自己分支的commit顶到最前面。但可能得多次解决冲突。
git rebase
【Git 总结】 Git基础--常用命令_第6张图片

两种合并到底用哪种要视团队而定。

不过从知乎上的讨论
来看,可以有一个简单的理解:
个人分支使用 rebase,
公共分支或者说多人协作的分支使用 merge ,
因为rebase会把当前分支的commit,调整到最前端,导致commit顺序混乱。
其他也有不同的理解,详细的可以看上面的知乎连接。
9. git tag 打标签,可以为版本打上标签, 以确定了打标签时刻的软件版本。
git tag v1.0 打上v1.0 标签。

使用git log 可以看到标签已经打上去了
【Git 总结】 Git基础--常用命令_第7张图片

如果要为历史commit 打标签,只需要在后面加上要打标签 的commit id : git tag
eg:git tag v2.0 532acfca

git tag 查看所有标签
git show 查看标签信息
git tag -d 删除标签

你可能感兴趣的:(Git)