Git作为一个开发者必备的技能,相信很多人都听说过。

为了帮助刚入门的同学更好地理解,能快速运用在工作和学习中,接下来先从基础开始吧~

那Git有什么优势呢?

1. 适合分布式开发,强调个体,即本地仓库的修改不会影响到别人的仓库,减少了“仓库污染”;

2. 公共服务器压力和数据量都不会太大;

3. 速度快、灵活;

4. 任意两个开发者之间可以很容易地解决冲突;

5. 可以离线工作,即在离线状态下,若工作区存在修改,可以将自己的更改先提交至本地仓库,待有网络后再提交至远程仓库。

b6f2d26c97ab4184f81ce56729f03e69.png

  • Workspace:工作区

    工作区是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

  • Index/Stage:暂存区

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库(.git)目录中,按照 Git 的术语叫做“索引”。

Local Repository:本地仓库

Remote Repository:远程仓库


1. 初始化

1. 在当前目录新建一个Git代码库

// 以下命令会创建一个名为.git的子目录,包含了初始化的Git仓库中所有的必须文件git init 

2. 下载远程仓库的项目至本地

git clone // 若想在克隆远程仓库时,自定义本地仓库名git clone 

2. 配置

 1.  设置git的通用配置

git config

2. 区分三个不同位置的配置

  • /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。如果执行 git config --system,那么它就会读写该文件中的配置变量。(由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)

  • ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 当执行git config --global 选项让 Git 读写此文件,这会对你系统上所有的仓库生效。

  • 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库。 当执行 git config --local 让 Git 强制读写此文件,虽然默认情况下用的就是它 (当然,你需要进入某个 Git 仓库中才能让该选项生效。)

[core]  repositoryformatversion = 0  filemode = true  bare = false  logallrefupdates = true  ignorecase = true  precomposeunicode = true[remote "origin"]  url = https://github.com/muer11/blogDemo.git  fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"]  remote = origin  merge = refs/heads/master

3. 添加 / 删除

1.  添加指定文件/文件夹到暂存区

git add 

2.  添加当前目录的所有文件到暂存区

git add .

3.  逐行检查并提交

git add -p

4.  删除工作区文件,并将这次删除放入暂存区

git rm 

4. 代码提交

1.  提交暂存区修改到本地仓库,并填写备注

git commit -m 

2.  提交暂存区的指定文件到本地仓库

git commit ... -m 

3.  修改上一次提交的内容或备注信息‍

git commit --amend

4.  追加新的内容到上一次未push的提交

git commit --amend --no-edit

5. 分支

1.  查看所有本地分支

git branch

2.  查看所有远程分支

git branch -r

3.  查看所有远程和本地的分支

git branch -a

4.  新建一个分支,并依然停留在当前分支

git branch 

5.  新建一个分支,并切到该新建的分支

git branch -b 

6.  新建一个分支,并与指定的远程分支建立追踪关系

git branch --track 

7.  切换至指定分支,并更新工作区

git checkout 

8.  切换至上一个分支 **

git checkout -

9.  在现有分支和指定的远程分支间建立追踪关系

git branch --set-upstream  

10.  合并指定分支到当前分支

git merge 

11.  将指定的commit应用于其他分支

git cherry-pick 

12.  删除本地分支

git branch -d 

13.  删除远程分支

git push origin --delete 

6. 远程同步

1.  下载远程仓库的所有变动

git fetch 

2.  显示所有远程仓库的配置

git remote -v

3.  增加一个新的远程仓库,并进行命名

git remote add 

4.  更新远程分支的变化

git pull 

5.  推送本地指定分支到远程仓库

git push  

7. 撤销

1.  恢复暂存区的指定文件至工作区

git checkout 

2.  恢复暂存区的所有文件到工作区

git checkout .

3.  重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

git reset 

4.  重置暂存区和工作区,与上一次commit保持一致

git reset --hard

5.  重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

git reset 

6.  重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit 一致

git reset --hard 

7.  新建一个commit, 用来撤销指定commit

git revert 

8.  暂时将未提交的变化暂存、取出暂存区内容

git stashgit stash pop

8.信息查询

1.  获取帮助

git help git  -h

2.  查看提交历史

git log

3.  显示变更的文件

git status

4.  根据关键词搜索提交历史

git log -S 

5.  显示某个文件的历史版本

git log --follow 

6.  显示指定文件的详细提交记录

git blame 

7.  显示暂存区和工作区的差别

git diff

8.  显示某次提交的元数据和内容变化

git show 

9.  显示某次提交时,某个文件的内容

git show :

切记:结合实践来更好地理解,温故而知新~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐