目录

引言

软件安装

常用命令

创建git管理的仓库-git init

添加管理的文件-git add

提交文件到本地仓库-git commit

查询提交日志-git log

查询命令日志-git reflog

版本回退-git reset

版本回退-git revert

工作区状态查看-git status

查看不同-git diff

切换分支或创建分支-git checkout

删除文件-git rm

本地与远端连接-git remote

推送代码-git push

更新代码-git pull

下载代码-git clone

查看分支-git branch

更新分支信息-git fetch

合并代码-git merge

暂存区管理-git stash

分支变基-git rebase

分支标签-git tag

详细信息-git show

软件配置-git config


引言

本文旨在提供安装git的相关资源以及总结平时常用的命令,方便在后续工作中参考。

软件安装

  1. git命令行安装包:https://git-scm.com/downloads
  2. TortoiseGit安装包:https://tortoisegit.org
  3. 安装完成后采用命令行进行用户名和邮箱设置。
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

常用命令

创建git管理的仓库-git init

  1. git init主要是将一个目录文件夹交给git管理,在文件夹内会有一个.git的隐藏文件夹。
mkdir ./test
cd test
git init test

添加管理的文件-git add

  1. git add命令主要将工作区的文件添加到暂存区。
  2. git add -f app.class:强制接管app.class文件。有时候由于.gitignore文件的存在,想让git接管一些文件将会被忽略,这时可以用-f参数强制接管。
  3. git add .命令是增加所有修改的、新增的文件,但不包括删除的文件。
  4. git add -u命令是增加所有修改的、删除的文件,但不包括新增的文件。
  5. git add -A .命令是增加所有修改的、新增的、删除的文件。
git add test.txt
git add -f app.class
git add .
git add -u
git add -A .

提交文件到本地仓库-git commit

  1. git commit是将暂存区的文件提交到本地仓库。
  2. git commit -m "note for explain":-m 参数是为此次提交作出标记说明,说明可以是任意内容。
git commit -m "commit test file"

查询提交日志-git log

  1. git log命令是显示最近到最远的提交日志,方便查询提交的历史。
  2. git log --pretty=oneline:每次的提交记录只显示一行,不用详细输出。
  3. git log -2:输出最近两次的提交日志。
  4. git log --graph:可以查看合并分支图。
git log
git log --pretty=oneline
git log -2
git log --graph

查询命令日志-git reflog

  1. git reflog查看历史命令记录。
git reflog

版本回退-git reset

  1. git reset --hard commit_id:将版本回退到id号所代表的版本,同时更新工作区内容。
  2. git reset --hard HEAD^:直接回退到上一版本。
  3. git reset --hard HEAD:将工作区状态回退到暂存区状态。
  4. 如果回退完后悔了,又想恢复原来状态,这是可以先用git log查询原先状态的commit_id号,再用git reset。
git reset --hard commit_id
git reset --hard HEAD^

版本回退-git revert

  1. git revert是将历史提交的差异地方逆向提交,将版本节点继续向前推进,但是对于merge的版本不会回退。
  2. 与git reset差别在于reset是删除回退到目标版本的以后版本信息,HEAD指针也回退。
  3. 关于merge版本的回退,可使用git revert commit_id -m 1命令,1代表回退到master分支,撤销合并进来的分支信息;2代表回退到branch分支,撤销合并进来的master分支信息。
git revert commit_id
git revert commit_id -m 1

工作区状态查看-git status

  1. git status命令主要显示工作区的状态,哪些文件修改了,哪些文件已经加入暂存区了。
  2. 当merge存在冲突时,也可以通过git status查看冲突点。
git status

查看不同-git diff

  1. git diff主要是比较不同点的。
  2. git diff test.txt:比较工作区文件与暂存区/仓库里文件的不同点。
  3. git diff id1 id2:比较id1和id2两次提交的文件不同点。
  4. git diff HEAD -- test.txt:比较工作区与仓库里test文件的差别。
git diff test.txt
git diff 46d49bf 9247db6

切换分支或创建分支-git checkout

  1. git checkout可以回退工作区的修改,也可以切换分支。
  2. git checkout --test.txt:将工作区里的文件回退到暂存区里的状态,如果暂存区是空的就回退到仓库里的状态。
  3. git checkout --help:查询checkout相关命令的帮助。
  4. git checkout -b branch_name  origin/special:切换到远端special分支,并建立新的分支branch_name,在special分支基础上继续开发。
  5. git checkout -b branch_name:从当前所在分支基础创建新的分支branch_name。
git checkout
git checkout --test.txt
git checkout --help
git checkout -b branch_name origin/special

删除文件-git rm

  1. rm filename.txt:直接删除工作区的文件。
  2. git rm filename.txt:删除仓库内的文件,这时还需要进一步的commit才完成,即git commit -m "remove filename"。
git rm filename.txt
git commit -m "remove filename.txt"

本地与远端连接-git remote

  1. git remote add:在本地的仓库下运行该命令可以将本地仓库与远端github账户中的仓库关联起来,以后便可以直接推送本地代码到远端。
  2. git remote:查看远程库信息。
  3. git remote -v:查看远程库更详细的信息。
git remote add origin git@github.com:Eureca2017/git_test

推送代码-git push

  1. git push是将本地仓库代码推送到远端仓库,但是需要先通过git remote add命令将本地仓库与远端仓库建立连接,如果是直接从远端仓库git clone下来的则默认已经建立连接,不需要再手动增加。
  2. git push -u origin master:该命令是将本地master代码推送到远端master代码,-u参数是将两个分支关联起来,以后push便可简化命令,否则每次提交都得指定远端主机名,这里是origin。
  3. git push origin branch_name:将本地当前分支推送到远端branch_name分支上。
  4. git push origin local_branch_name:remote_branch_name:将本地local_branch_name分支推送到远端remote_branch_name分支上。
  5. git push origin :branch_name:等同于git push  origin --delete branch_name,删除远端branch_name分支名。
  6. git push origin:将当前分支推送到origin远端建立链接的分支上。
  7. git push:将当前分支推送到远端建立链接的分支,这种命令只有在当前分支与远端只有唯一链接的情况才能使用。
git push -u origin master
git push origin branch_name
git push origin local_branch_name:remote_branch_name
git push origin :branch_name
git push origin
git push

更新代码-git pull

  1. git pull origin master:branch_name:git pull 主机名 <远程分支名>:<本地分支名>。
  2. git pull origin master:将远端master分支拉下合并到本地当前分支。
  3. git pull origin:如果本地分支与远端分支存在关联关系,则可以直接用此命令拉下代码。
  4. git pull:如果本地分支与远端分支存在关联关系且关联关系又是唯一的,则可以直接拉下代码。
git pull origin master:branch_name
git pull origin master
git pull origin
git pull

下载代码-git clone

  1. git clone主要是将远端代码下载下来。
git clone git@github.com:Eureca2017/git_test

查看分支-git branch

  1. git branch:显示本地所有分支名称。
  2. git branch -a:显示本地和远端所有的分支名称。
  3. git branch -r:显示远端所有的分支名称。
  4. git branch -d branch_name:删除本地branch_name分支。
  5. git branch --set-upstream branch_name orgin/branch_name:建立远程分支与本地分支的链接。
git branch 
git branch -a
git branch -r
git branch -d branch_name
git branch --set-upstream branch_name orgin/branch_name

更新分支信息-git fetch

  1. git fetch:更新本地所有分支信息。
  2. git fetch origin:获取远程跟踪分支最新信息,更新本地分支信息。
  3. git fetch origin branch_name:git fetch <远程主机名> <分支名>。
  4. git fetch git://git.kernel.org/pub/scm/git/git.git branch_name:从相关URL地址获取branch_name分支更新信息。
git fetch
git fetch origin 
git fetch origin branch
git fetch git://git.kernel.org/pub/scm/git/git.git branch_name

合并代码-git merge

  1. git merge master:将master上的代码合并到当前所在分支上。
  2. git merge --no-ff master:表示禁用fast forward,即保留原来分支节点信息,合并后重新创建一个节点提交。
  3. fast forward合并方式将看不到历史合并的记录。

暂存区管理-git stash

  1. git stash是将工作区的修改暂时存储起来,待处理完其他分支信息再恢复现场。
  2. git stash list查看工作区之前存储的目录。
  3. git stash apply stash@{0}恢复工作区的修改,但不删除存储列表里的。
  4. git stash drop stash@{0}删除存储列表里的修改。
  5. git stash pop恢复工作区修改并删除列表里的记录。
git stash
git stash list
git stash apply stash@{0}
git stash drop stash@{0}
git stash pop stash@{0}

分支变基-git rebase

  1. git rebase是把master分叉的提交历史整理成一条直线,一般用到较少。
  2. 分叉的提交历史是指自己修改了master分支代码,而第三方也更新了master分支代码,自己再次提交一般需要pull,这时再push的代码就不是一条直线了,会存在分叉现象,跟普通分支合并一样。可通过rebase命令解决,改变代码的基代码。
git rebase

分支标签-git tag

  1. git tag:查看所有已经打标签的分支的信息。
  2. git tag v1.0:将当前分支打上标签v1.0。
  3. git tag v1.0 commit_id:对commit_id分支进行打标签。
  4. git tag -a v1.0 -m "test information" f23432:-a参数表示指定标签名,-m参数表示该标签的信息。
  5. git tag -d v1.0:删除v1.0这个标签。
  6. git push origin <tag_name>:推送某个标签到远程。
  7. git push origin --tags:一次性推送所有尚未推送到远端的本地标签。
  8. git push origin :refs/tags/v1.0:删除远程v1.0的标签。
git tag 
git tag v1.0
git tag v1.0 f23432
git tag -a v1.0 -m "tag information" f23432
git tag -d v2.0
git push origin v1.0
git push origin --tags
git push origin :refs/tags/<tag_name>

详细信息-git show

  1. git show <tag_name>:展示tag_name分支详细信息。
  2. git show commit_id:展示commit_id分支详细信息。
git show v1.o
git show f45232

软件配置-git config

git config --help:查看配置的帮助。

git config --global user.name "John":配置git的用户名。

git config --global user.email "example@163.com":配置git的邮箱。

git config --global core.edit emacs:设置git的编辑器。

git config --global color.ui true:设置git命令界面着色。

git config --help
git config --global user.name "John"
git config --global user.email "example@163.com"
git config --global core.edit.emacs
git config --global color.ui true

 

 

 

Logo

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

更多推荐