Git——常用命令

git 配置

系统级别配置

# 配置git用户信息
git config --system user.name "xxx"
git config --system user.email "[email protected]"
git config --system user.password "a123456"
# 记住密码
git config --system credential.helper store
git config --list
# 清理账号密码
git config --system --unset credential.helper  

用户全局级别配置

# 配置git用户信息
git config --global user.name "xxx"
git config --global user.email "[email protected]"
git config --global user.password "a123456"
# 记住密码
git config --global credential.helper store
git config --global --list
# 清理账号密码
git config --global --unset credential.helper  

项目级别配置

# 配置git用户信息
git config --local user.name "xxx"
git config --local user.email "[email protected]"
git config --local user.password "a123456"
# 记住密码
git config --local credential.helper store
git config --local --list
# 清理账号密码
git config --local --unset credential.helper  

免密登录

touch ~/.git-credentials
echo "http://guest:[email protected]:8088" > ~/.git-credentials
git config --global credential.helper store \

基本操作

# 初始化 git 文件
git init
# 提交对应文件的代码到暂存区
git add 文件名
# 提交所有工作区的代码到暂存区
git add .
# 创建快照记录
git commit -m ''
# 工作区与某次提交的差异
git diff [] 
# 暂存区与某次提交的差异,默认为HEAD
git diff -cached [] 
# 删除文件(只是从目录中删除、如果要从版本库中删除,需要再 git commit)
rm filename 

查看

# 查看所有版本日志,被回收的信息不会在这里看到
git log 
# 查看所有版本日志简化信息
git log --pretty=oneline 
# 查看所有版本日志,被回收的信息也可以在这里看到,按经过的顺序排列
git reflog 
# 查看当前提交情况
git status 
# 查看某次快照的提交(修改)内容
git show <commit 哈希值>
# 查看文件内容(获取的是暂存区和工作区的文件的内容,如果内容一样,则不区分)
cat filename 
# 查看分支信息(结果为该分支指针信息,如e72638jskanj988a8ifji…,长度为40的字符串)
cat .git/refs/heads/master 

版本回退

# 将文件内容从提交区复制到暂存区
git reset HEAD
# 撤回最近一次的commit (未push的情况下)
git reset HEAD~
# 回退到上一次提交,^ 指上一次
git reset --hard HEAD^
# 回退到上 n 次提交
git reset --hard HEAD~n
# 版本回退到某一指定版本,这里的 30945da 指的是具体版本号
git reset --hard 30945da
# 回退已跟踪的文件
git reset --hard origin/master
# (此处 mixed 不填效果是一样的),将当前内容复制到暂存区,此时 HEAD 和 master 同时回退到该指针,此时提交区与暂存区内容一致,与工作区不一致
git reset --mixed 30945da
# 将当前内容复制到暂存区和工作区,此时提交区与暂存区、工作区内容一致
git reset --soft 30945da
# 清除未跟踪的文件,若是文件不想被清除掉,可以在.gitignore里增加
git clean -df  

远程仓库

# 关联远程仓库
git remote add origin https://github.com/tugenhua0707/testgit.git
# 查看远程仓库的信息
git remote -v 
# 获取远程仓库的提交历史
git fetch 
# 修改了本地 origin master 分支
git fetch origin <分支名>  
# 完成本地三方合并
git merge origin <分支名> 
# 拉取并合并代码
git pull 或 git pull origin <分支名> 
git pull = git fetch + git merge
# 初次完整获取远程仓库
git clone = git init + git remote + git pull

分支操作

分支的增删改查

# 创建分支
git branch <分支名>
# 删除分支
git branch -d <分支名>
# 查看所有分支
git branch -a
# 删除远程 test 分支
git push origin --delete test

分支的切换

原理:通过移动HEAD检出版本

# 切换到该分支
git checkout <分支名>
# 创建并切换到该分支
git checkout -b <分支名>
git checkout 将其引用到任何一个对象上
# 切换到到上一个分支
git checkout - 
# 将文件内容从暂存区复制到工作区
git checkout – filename 
# 把 HEAD 切换到该指针上,但会造成 HEAD 与 master 分离,造成 detached head 效果,此时不宜提交,因为 master 指针没有回退,当 HEAD 回到 master 上时,之前提交的代码可能被回收。这种操作一般只用来查看代码
git checkout <指针名> 

分支的合并

# 把 test 分支合并到当前分支
git marge test
# 不使用 fast-forward
git marge next --no-ff
# 修剪提交历史的基线,即‘变基’
git rebase
# 在 master 分支上重演其他分支的所有指针信息,并且合并进来产生新的指针
git rebase master
# 在 master 分支上重演其他分支的最后一次指针信息,并(同上)
git rebase --onto master <指针名>

暂存

# 把工作区和暂存区的内容存到 stash 区
git stash save ‘name’
# 查看 stash 区中存了多少条内容
git stash list
# 将该条内容恢复到工作区
git stash apply stash@{0}
# 删除该条记录
git stash drop stash@{0}
# ?
stash pop = stash apply + stash drop

标签

# 创建别名
git tag

你可能感兴趣的:(Git,git)