Skip to content

Git基本操作手册

SSH key

ssh-keygen -t rsa -C "fzjlovemy@163.com"
cat ~/.ssh/id_rsa.pub
ssh -T git@gitee.com

# Windows
ssh-keygen -t rsa -C "feizhaojun@xdf.cn"
cat /c/Users/Mukti/.ssh/id_rsa.pub

用户操作

git config user.name  # 查看用户名
git config --global user.name  # 查看全局用户名
git config user.name "Mukti"  # 设置用户名
git config credential.helper store  # 记住密码

基本操作

git init    # 初始化一个 git repo
git status # 查看状态
git log # 查看历史记录
git log --pretty=oneline # 单行简要显示一次记录
git reflog # 可以查看所有分支的所有操作记录,包括已经被删除的 commit 记录和 reset 的操作
git add <file> # 将一个文件添加到暂存区 stage
git commit -m -a # 提交,参数“-a”包括了“git add”
git rm </file><file> # git add 相反
git rm --cached </file><file> # unstage,但是保留物理文件
git diff # 查看文件变更(工作区和暂存区对比)
git diff --cached # git add 之后查看与上一版本的区别(暂存区和已提交对比)

悔改

git checkout -- <filename> # 撤销未暂存的文件(工作区)的修改
git reset --hard HEAD^  # HEAD指针上移一个,回退到上一个版本。^^回退前2个版本
git reset --hard HEAD~100  # 回退前100个版本
git reset --hard <commitid> # 回退到某个版本号
git reset --hard origin/master # 回退到远端仓库

远程仓库

git clone <url> # 克隆,会自动关联远程分支,pull或push无需指定远程分支
git remote # 查看关联的远程仓库
git remote -v # 查看关联的远程仓库的详细信息
git remote add <origin> git@gitee.com:mukti/mukti-test.git # 添加远程仓库的关联
git remote remove origin # 删除远程仓库的关联
git remote set-url origin <newurl> # 修改远程仓库的关联,也可以删除再添加,也可以修改.git目录的config文件
git branch --set-upstream-to=origin/master # 关联本地与远程的分支,每次pull和push不需要指定分支
// git pull --allow-unrelated-histories # 远程库和本地库本来是独立的库,需要合并两个库
git pull <origin> <branchname>
git push # 推送当前分支到默认远程库的对应分支,如果远程不存在对应分支则报错
git push <origin> # 推送当前分支到远程库</origin><origin>的对应分支
git push </origin><origin> <branchname> # 将本地</branchname><branchname>推送到远程</branchname><branchname>分支,如果本地不存在</branchname><branchname>分支则报错
git push -u origin master # 参数“-u”将“origin master”设置为默认的远程仓库和分支,以后不需要再指定

分支

git branch # 列出 repo 中所有分支
git branch -a # 列出本地和远程所有分支
git branch </branchname><branchname> # 创建一个新的分支
git branch <newbranchname> <branchname> # 基于</branchname><branchname>分支创建一个新的分支
git brach </branchname><branchname> <commitid> # 基于当前分支的提交版本号创建新的分支
git branch -d <branchname> # 删除分支 -D 大写是强制删除,不出现合并提示

# 删除远程分支
git push <origin> :<branchname>
git push -d <origin> <branchname>
git push --delete <origin> <branchname>

# 切换到分支
git checkout </branchname><branchname>
git checkout -b </branchname><branchname> # 创建一个新的分支,并切换到新分支 相当于 git branch [name] + git checkout [name]

git checkout –b <newbranchname> <branchname> # 基于</branchname><branchname>分支创建一个新的分支
git checkout –b <newbranchname> <origin>/<branchname> # 基于远程的某个分支创建一个新的分支,从远程分支拉去的新分支push的时候会在远程查找同名分支,如果没有会提示,不会直接push到源分支。如果远程分支是新分支,需要先 pull

合并分支?

git merge </branchname><branchname> # 合并</branchname><branchname>到当前分支
git merge --abort # 放弃并入分支(非当前)的修改
git merge –no-ff -m "<comments>" <branchname> # 不使用Fast forward模式合并分支,合并的分支删除后,可以保留提交记录。
git merge <brancha> <branchb> # 将<brancha>分支合并到<branchb>分支

git rebase <branchname>

暂时隐藏工作

git stash # 隐藏当前工作
git stash list # 查看所以被隐藏的工作列表
git stash apply # 恢复被隐藏的工作,不删除隐藏工作列表中的记录
git stash drop # 删除隐藏工作列表中的记录
git stash pop # 恢复隐藏的工作并删除隐藏工作列表中的记录

HEAD

cat .git/HEAD
// git symbolic-ref HEAD
git checkout <hash>
git checkout master^
git checkout HEAD^
git checkout HEAD~4
git branch -f <branchname> HEAD~3

相关文章

插播一个征婚广告~~

也是受朋友之托。

>_<

女,运营妹,23岁,未婚,身高167cm,体重48KG,山东青岛。

目前在阿里巴巴工作,负责支付宝相关业务,工号 519720401 支付宝搜索工号可见照片。

漂亮大方,爱好读书、健身、游泳、吃鸡。

青岛有房一套,有车。

父母退休,家庭不拜金、人务实,一直没有合适的男朋友。

她本人要求不高,只要对她真心好就行。

 

您的赞助将会鼓励作者技术文章创作以及支持本站运维。

发表评论

Your email is never published nor shared. Required fields are marked *


TOP