学习git命令之前首先来看一个关系图,理解我们的代码从工作区到远程仓库的过程中经过哪些过程,同时也是我们提交代码的流程。
git.png接下来就是常用的一下命令
1. 从仓库拉取线上代码
git clone url (仓库地址)
2.状态追踪
git status
ls // 查看
3.提交到暂存区域 (git会自动忽略空文件夹)
三种提交方式:
单文件提交 git add ljy.txt
多文件提交 git add d.txt s.txt
全部提交 git add.
4.错误操作:需要撤回
git checkout 只能撤回还没有git add (提交到暂存区)的状态。对于新添加的文件需要先git add . 加到git file当中才可以修改,添加,删除文件内容,然后再进行撤回
git checkout -- 1.txt // 撤回一个指定文件
git checkout . // 撤回全部修改的文件
git checkout ljy.txt // 单文件撤回
git checkout d.txt s.txt // 多文件撤回
5、新建文件
touch 1.txt
6、新建文件夹
git touch image/.gitkeep
7、输入邮箱和密码
git config --global user.email "你的邮箱"
git config --global user.name "你的名字"
8、提交到本地仓库
git commit -m "(当前版本的有效信息)";
9、查看我们本地仓库的提交版本信息
git log --pretty=oneline(屏蔽作者和时间信息)
(HEAD-->master)当前属于哪个版本
41165d6a0c782496a0201f3fe0dc70bb2db2d464 (当前版本的ID,经过非对称加密之后的);
10、git reset 回退版本
HEAD~100回退到前100个版本
git reset --hard HEAD~2
11、版本前进
在查看版本信息时一定要记住版本号前5位
git reset --hard 版本号前5位
12、钥匙:
ssh-keygen -t rsa -C "1010020650@qq.com"
13.创建分支、分支重命名、设置分支追踪
git remote -v // 列出已经存在的远程分支的详细信息
1.git fetch -p 将远程分支代码拉到本地 -p 会删除远程已经不存在的分支
2.git status 查看目前所在分支
3.git checkout -b + 新分支名 origin/总分支名 创建完毕,并且切换到新分支 追踪到master分支
git branch -m 新分支名
git branch --set-upstream-to=origin/远程分支 本地分支 // 设置远程追踪的分支
14.删除分支
git branch -d + 要删除的分支名
git branch -D + 要删除的分支名 (强制删除)
删除远程分支:git push origin:分支名
15.同步远程已删除的分支和删除本地多余的分支
git branch -a 查看本地分支和远程分支情况
git remote show origin 查看本地分支和追踪情况
git remote prune origin 同步删除远程已经删除的分支
git branch -D feature/chatfix 删除本地多余的分支
16.合并分支 之 rebase和merge 区别
merge.pngrebase.png
1.merge 用”pull“命令把”origin“分支上的修改拉下来并且和你的修改合并; 结果看起来就像 一个新的”合并的提交”(merge commit)
- rebase 会把你的”mywork“分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到”.git/rebase“目录中),然后把”mywork“分支更新到最新的”origin“分支,最后把保存的这些补丁应用到”mywork“分支上。
在rebase的过程中,也许会出现冲突(conflict)。在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用”git add“命令去更新这些内容的索引(index), 然后,你无需执行 git commit,只要执行:
解决完冲突 继续rebase
git rebase --continue
撤销rebase
git rebase --abort
跳过这个commit
git rebase --skip
git pull = git fetch + git merge 从远程仓库提取数据并尝试合并到当前分支
git pull --rebase = git fetch + git rebase
git merge dev 当前处于分支,去合并 dev合并
git branch 查看本地都有几个分支,当前处于哪一个(*文字为绿色的)
17、上传文件
git fetch -p // 拉取远程最新代码
git rebase origin/master // 本地代码合并远程代码
git push -u origin master // 第一次上传加-u,之后不需要加
git push origin f-pay(分支名) // 第二次之后上传
18.将多个commit合并成一个commit
git reset --soft 2f4484c (相应合并的最早的commit版本) //此时从最早的commit到最近的commit之间所有修改的内容都会回到暂存区
git commit -m '合并后的commit' // 重新提交一个commit
19.拣选
1.git cherry-pick + commit的版本号
git cherry-pick -n+ commit的版本号 // 如果不想git cherry-pick自动进行提交,则加参数-n即可
2.当cherry-pick时,没有成功自动提交,这说明存在冲突,因此首先需要解决冲突,解决冲突后需要git commit手动进行提交;(两种方法)
(1)git commit -m "提交说明"
(2)git add . -> git cherry-pick --continue
3.如果想要在cherr-pick后重新编辑提交信息
git cherry-pick -e + commit的版本号
4.如果要中断这次cherry-pick,则使用git cherry-pick --quit,这种情况下当前分支中未冲突的内容状态将为modified
5.如果要取消这次cherry-pick,则使用git cherry-pick --abort,这种情况下当前分支恢复到cherry-pick前的状态,没有改变
20.将本地代码推送到远程仓库
在远程创建一个仓库
初始化本地git仓库: git init
将项目代码提交到暂存区:git add .
将暂存区的代码提交到本地仓库:git commit -m '提交说明'
连接远程仓库:git remote add origin git@github.com:username/xxx.git
如果远程仓库有文件,先拉取文件和本地合并(新建仓库可跳过):git pull origin master
推送本地代码到远程: git push -u origin master
21.查看最近三次提交
git log --online -3
网友评论