git基本操作

Git基本操作

一、直接上干货,以便查缺补漏

1
工作区-》暂存区-》本地库-》远程库(类似于:车间流水线-》运输车-》分部仓库-》总部仓库)
2
git config --global user.name "Your Name"	# 初始全局用户名
3
git config --global user.email "email@example.com"	# 初始全局邮箱
4
git config --global color.ui true	# 开启指令配色方案
5
git init	# 初始化本地git仓库
6
git add readme.txt	# 添加文件到暂存区
7
git commit -m "wrote a readme file"	# 将暂存区内容一次性提交到本地库
8
git status	# 查看当前相对于版本库的变化(未被git管理的、工作区的、暂存区的)
9
git diff readme.txt	# 查看文件修改内容
10
git log --graph --pretty=oneline --abbrev-commit	# 查看commit日志,分支图形、行内显示、缩写提交内容
11
git reflog	# 查看日志(包括版本回退及版本删除的commit id)
12
git reset --hard HEAD^	
13
git reset --hard 1094a
14
git reset HEAD readme.txt	# 撤销暂存区
15
git checkout -- readme.txt	# 检出版本库文件替换工作区
16
ssh-keygen -t rsa -C "dalivk@163.com"	# 远程仓库关联,ssh免密登录,速度相对于http更快。
17
git remote -v	# 查看远程仓库地址
18
git remote add origin git@github.com:dalivk/learngit.git	# 关联远程仓库
19
git push -u origin master	# 当远程在页面初始化,第一次推送可以强制推送
20
git clone git@github.com:dalivk/gitskills.git	# 克隆远程库默认分支
21
git checkout -b dev	# 建立并切换到本地dev分支
22
git checkout -b dev origin/dev	# 与远程dev分支关联,并切换到本地dev分支
23
git branch	# 查看本地分支
24
git branch -r	# 查看远程分支
25
git branch -d dev	# 删除本地分支
26
git merge dev	# 合并dev分支到当前分支(fast-forward快速前进,只是指针的移动,相当于一次commit,本质上非分支合并)(若合并后删除dev分支,ff模式找不到dev)
27
git merge --no-ff -m "merge with no-ff" dev	# 不使用fast-forward,以便追溯历史分支信息
28
git checkout -b dev	# 等同于 git switch -c dev
29
git branch --set-upstream-to <branch-name> origin/<branch-name>	# 关联远程分支
30
git stash	# 保存工作区的修改,使工作区与版本库一致
31
git stash list	# 查看保存过的记录
32
git stash pop	# 弹出保存记录,相当于 git stash apply stash@{0} && git stash drop stash@{0}
33
git cherry-pick 4c805e2	# 复制一次其他分支的commit
34
git rebase	# push时,远程库已有新版本,pull后,无论是否冲突,log graph都会有分支合并的记录,变基操作可以将本次commit放在远程commit之后,从而将commit log梳理成直线
35
git tag -a v0.1 -m "version 0.1 released" 1094adb	# 为指定commit创建静态易读的静态commit id
36
git show v0.1	# 查看tag信息
37
git push origin v0.1	# 推送本地tag到远程,或使用git push origin --tags 推送本地所有tag
38
git tag -d v0.1 && git push origin :refs/tags/v0.1	# 删除本地及远程tag
39
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"	# git alias指令
40
source tree图形化git工具
41
git cheat sheet	https://gitee.com/liaoxuefeng/learn-java/raw/master/teach/git-cheatsheet.pdf
42
git rm -r --cached target/	# 取消远程库对idea编译目录的版本追踪