赞
踩
Git是一种分布式版本的版本控制系统。
git config --global user.name "随风"
git config --global user.email "123@163.com"
输入完成可以检查下
git config --list
#git st 相当于 git status
git config --global alias.st status
简化查询log命令
#git l
git config --global alias.l "log --oneline --graph"
小提示:
整个项目目录中,无论哪个文件或目录被删除了都能找回,但如果.git目录被删除了就没办法找回来了。
#单个人
git log --oneline --author="随风"
#多个人
git log --oneline --author="随风\|随风1"
使用–grep参数,可以从Commit信息中搜索符合关键字的内容,如搜索“LOL”
git log --oneline --grep="第一次提交"
使用-S参数,可以在所有的Commit文件中进行搜索,找到那些符合特定条件的内容:
git log -S "Ruby"
在查看历史记录时,可以搭配–since和-- until参数查询:
git log --oneline --since="9am" --until="12am" --after=="2017-01"
# 直接删除
rm bb.txt
# 使用git 删除
git rm bb.txt
不论是执行rm命令,还是执行git rm 命令,都会真的把这个文件从工作目录中删除,如果不是真的把这个文件删除,只是不想让这个文件再被Git控制,可以加上–cached参数:
git rm aa.txt --cached
对git commit提交内容进行修改。
mv bb.txt cc.txt
#查看整个项目的Commit记录
git log
#查看特定文件的Commit记录
git log -p aa.txt
#删除
rm aa.txt
# 挽回
git checkout aa.txt
小提示:
当使用git checkout命令时,Git会切换到指定的分支,但如果后面接的是文件名或路径,Git则不会切换分支,而是把文件从.git目录复制一份到当前的工作目录(把暂存区中的内容或文件拿来覆盖工作目录中的内容或文件)。
使用 git reset命令操作
git reset的参数对工作目录及暂存区的影响
模式 | mixed模式 | soft模式 | hard模式 |
---|---|---|---|
工作目录 | 不变 | 不变 | 被删除 |
暂存区 | 被删除 | 不变 | 被删除 |
回退到以前版本
# 知道具体的编码
git reset 提交记录
# 回退到上一次提交记录
git reset master^
git reset HEAD^
#回退到n次提交记录之前
git reset HEAD~n
# 1. 查看分支
git branch
# 2. 新增分支
git branch cat
# 3. 更改分支名称
git branch -m cat tiger
# 4. 删除分支
git branch -d dog
# 5. 强制删除分支
git branch -D dog
# 6. 切换分支
git checkout tiger
# 7. 使用Checkout命令的-b参数直接创建分支并自动切换过去
git checkout -b bird
小提示:
Git在切换分支时,会用该分支指向的那个commit(新分支)的内容‘更新’暂存区及工作区。但在切换分支前所做的改动则会留在工作目录中不受影响。
把A分支的内容合并到B分支
首先切换到B分支
git checkout B
# 合并内容
git merge A
#进行回退操作
git reset HEAD^ --hard
# 恢复
git reset ORIG_HEAD --hard
# 修改最后一次提交文本信息
git commit --amend -m "first commit"
# 修改commit信息
##1.切换互动模式
git rebase -i 09bf59d
##2. 使用reword替换pick
##3. 修改提交内容
小提示:
在互动模式的记录中,由上而下是从最旧到最新,与git log指令所呈现的结果是相反的。
Reset指令、Rebase指令、与Revert指令的区别
指令 | 修改历史记录 | 说明 |
---|---|---|
Reset | 是 | 把当前状态设置成某个指定的Commit的状态,通常适用于尚未推出去的Commit |
Rebase | 是 | 不管是新增、改动、删除Commit,还是用来整理、编辑还没有推出去的Commit,都相当方便,但通常只适用于尚未推出去的Commit。 |
Revert | 否 | 新增一个Commit来反转(或取消)另一个Commit的内容,原来的Commit依旧会保留在历史记录中。虽然会因此增加Commit数量,但通常比较适用于已经推出去的Commit,或者不允许使用Reset或Rebase来修改历史记录指令的情景。 |
背景:
在开发一个项目过程中,遇到临时任务,需要切换到其他分支上,对于新增的内容需要怎么处理?
方法1:先提交,然后reset.
方法2: 现暂存,处理完然后再取出来。
#针对方法2
## 1,保存
git stash
## 2. 查看保存信息
git stash list
## 3. 取回保存信息
git stash pop stash@{2}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。