记录开发中常用的Git命令和使用技巧
Git仓库
Git项目的初始化
第一种方式,将本地已有的仓库和远程库关联
-
初始化本地仓库
- 新建一个说明文档
touch README.md
- 初始化本地仓库
git init
-
提交文件,初次提交信息
git commit -am "first commit"
-
关联远端仓库
-
添加远端仓库的地址,名字叫origin
git remote add origin git@192.168.1.21:maoyiming/learn_git.git
-
将本地仓库的内容push到远端仓库
git push -u origin master
-
第二种方式,克隆远程仓库
-
使用命令克隆
git clone git@192.168.1.21:maoyiming/learn_git.git
Git仓库操作
-
删除本地仓库
find . -name ".git" | xargs rm -Rf
-
删除远端仓库
git remote rm origin
Git用户信息配置
-
查看当前用户名
git config user.name
-
配置用户名
git config --global user.name "m1Ku"
-
查看当前邮箱
git config user.email
-
配置邮箱
git config --global user.email "xxx@gmail.com"
分支操作
-
新建分支
git checkout -b dev master
新建一个基于master分支的dev分支,并切换到dev分支
-
新建分支后,将分支推送到远端,并且建立关联
git push -u origin dev
-
查看本地分支
git branch
-
查看远程分支
git branch -a
-
切换分支
git checkout 分支名
-
删除本地分支
git branch -d test
-
删除远端分支
git push --delete origin test
-
合并分支
git merge origin/test
将test分支与当前分支合并
-
cherry-pick 将指定的提交应用于其他分支
git cherry-pick <commitHash>
如果cherry-pick过程中遇到冲突-
--continue
第一步将修改的文件重新加入暂存区(git add .),第二步使用该命令,让 Cherry pick 过程继续执行。 -
--abort
发生代码冲突后,放弃合并,回到操作前的样子。 -
--quit
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。
-
-
重命名分支名
先修改本地分支名
git branch -m oldName newName
如果要重命名远程分支名字,先将远程分支删除,然后再将本地分支推送到远端
-
远程已经删除的过时分支,本地依然可见的问题
有时候当一个远端分支被删除后,通过git branch -a还是可以看到这个远端分支?
可以通过这个命令
git remote show origin
查看具体分支信息,当远程分支被标记为stale(过时)时,可以使用git remote prune origin
来移除过时分支,同步远程分支
标签操作
-
新建标签
git tag -a v1.02(标签名) -m "1.02上线完成"
-a 指定标签名称,-m标签说明
-
推送指定标签到远端
git push origin v1.02(标签名)
-
推送所有标签推送到远端
git push origin --tags
-
查看所有标签
git tag
-
删除本地标签
git tag -d v1.4.1
-
删除远端标签
git push origin:refs/tags/v1.4.1
版本回退
版本回退有两种方式
-
指定回退版本的个数
-
回退到上一个版本
git reset --hard HEAD^ (如果回退到前两个版本就是 HEAD^^,一次类推)
-
回到的前100个版本
git reset --hard HEAD~100
-
-
指定回退的版本号
-
查看提交的版本号
git reflog
-
回退到commit 6fcfc79版本
git reset --hard 6fcfc79
-
代码相关操作
代码提交
-
将修改提交到缓存区
git add .
-
将本地缓存保存到本地仓库中
git commit -m "提交注释"
-
add和commit可以简化为
git commit-am "提交注释"
-
将本地仓库推送到远端
git push
-
同步远端代码到本地仓库
git pull
代码修改
-
撤销工作区文件的修改
git checkout --<file>撤销工作区文件的修改
-
撤销缓存区文件的修改
-
先把缓存区的修改撤销掉(unstage),使其重回工作区
git reset HEAD file
-
再撤销工作区文件的修改
git checkout --<file>撤销工作区文件的修改
-
查看一个文件的历史
git log -- filename
Git使用技巧
恢复删除的文件
-
首先找到在哪个commit中删除了文件
git log --diff-filter=D --summary
-
恢复指定commit删除的指定文件
git checkout $commit~1 filename
查看文件每个部分是谁修改的
-
协同开发时,可能一个文件被多个人修改以至于出现bug,此时想知道是谁改出了bug?
git blame filename
文件和文件夹操作
-
新建一个文件
touch readme.md
-
新建一个文件夹
mkdir code
-
切换目录
cd d:/code
-
回退到上一个目录
cd ..
-
打印当前工作目录
pwd (print working directory)
-
删除一个文件
rm index.js
-
删除一个文件夹
rm -r code
-
清空工作区的内容
reset
网友评论