Git是一个版本控制软件
GitHub与GitLab都是用于管理版本的服务端软件
GitLab用于在企业内部管理Git版本库,功能类似GitHub
- 版本库初始化
- 操作:添加文件,修改文件,提交变更,查看版本历史
- 版本库同步
文件的三种状态 :已修改(modified)已暂存(staged) 已提交(committed)
Git常用命令
// 获得版本库
git init 初始化仓库
git clone 克隆远程仓库
// 版本管理
git add 加入暂存区
git add . // 将当前目录所有文件纳入暂存区
git commit 将暂存区文件加入版本库
// 如果提交的注释写错了,可以这么修改:
git commit --amend -m '正确的注释'
> git commit -m 'zhushi'
git rm 删除
> git rm --cached test.txt // 从暂存区删除某文件 作用同命令:git reset HEAD test.txt
- git checkout -- test.txt // 作用是:放弃 本次本地的修改,丢弃掉本地内容 ,以和暂存区保持一致。
- git reset HEAD test.txt // 作用是:将之前添加到暂存区的内容从暂存区移到工作区。
> rm filename //删除本地文件,此处没有git
// 版本库删除文件分两步:1.rm filename 2.git commit -am 'beizhu'
// 暂存区删除文件分两步:1.git reset HEAD test.txt 2.rm filename
// 删除版本库文件分两步:1.git rm text.txt 2.git commit -m 'aaa'
> git clean -f 删除未监视的文件untracked files
---------------------------------------------------------------------------
Git rm:
1.删除一个文件 git rm test.txt
2.将删除的文件纳入到 暂存区 git commit -m 'tijiao'
若要恢复被删除的文件,需要两步 :(经试验无效。。。)
1. git reset Head test.txt 将删除的文件从暂存区恢复到工作区
2. git checkout -- test.txt 将工作区中的修改丢弃掉
---------------------------------------------------------------------------
git mv oldname newname //给文件重命名
git mv 和 mv的区别:
git mv 重命名后会将原文件放入暂存区,可通过命令恢复,mv不会加入暂存区
---------------------------------------------------------------------------
git log
-p:展开显示每次提交的内容差异
-n: 仅显示最近的n次更新
--stat 仅显示简要的增改行数统计
--pretty=online 以单行来显示
---------------------------------------------------------------------------
// 查看信息
git help
git log 查看提交日志
git diff 比较文件差别
//远程协作
git push 将本地版本库的内容推到远程
git pull 将远程版本库拉回本地
~/.gitconfig 针对用户 git config --global
.git/config 针对项目 git config --local
git config --local user.name 'czy'
git config --local user.email '527343714@qq.com'
git config --list //展示详细信息
git config user.name // 展示用户名
git config --local --unset user.name //删除用户名
cat config // 展示用户信息
.gitignore文件
.gitignore 文件
*.b
!a.b // a.b 除外
/TODO //仅仅忽略项目根目录下的TODO文件
build/ //忽略build目录下的所有文件
# 是注释
分支
git branch // 查看已有分支
git branch new_branch // 新建新分支
git branch -m master master2 // 将master 改名为 master2
git checkout - //切换到上一个分支
git checkout -b new_branch // 创建并切换分支
git checkout new_branch // 切换到新分支
git checkout -d branchName // 删除当前分支或当前分支有新文件时,会警告。
git checkout -D branchName // 删除分支,当有新文件时,不会警告。
-----------------------------------------------------------------------------------------------
git stash // 保存工作到一半的文件
git stash list // 查看保存的列表
git stash pop // 恢复的同时也将stash内容删除
git stash apply // stash内容并不删除,需要通过git stash drop stash@{0} 手动删除。
-----------------------------------------------------------------------------------------------
当系统到达某一个里程碑的时候,加标签
git tag v1.0 // 创建一个轻量级标签
git tag -a v1.0 -m 'release version' // 创建一个带有附注的标签
git tag -d tag_name // 删除标签
-----------------------------------------------------------------------------------------------
git blame 查看上一次文件被谁修改
-----------------------------------------------------------------------------------------------
git diff
-----------------------------------------------------------------------------------------------
git merge new_branch // 将新分支,合并到当前分支
> HEAD 指向的是当前分支
> master 指向的是当前分支
--no-ff 禁用 fast-forward : git merge --no-ff dev
版本回退
// 回退到上一版本
git reset --hard HEAD^ // 回退到上一个版本
git reset --hard HEAD^^ // 回退两个版本
git reset --hard HEAD~1 // 回退到上一个版本
git reset --hard 1oo7 //回到某个版本,版本号可以只写前几位
git log // 提交日志
git relog // 操作日志
Linux常用命令
echo 'hello' > text.txt // 一个>是覆盖
echo 'hello' >> text.txt // 两个>是追加
ctrl+a 跳到行首
ctrl+e跳到行尾
网友评论