- 配置用户名和邮箱
git config --global user.name '用户名' git config --global user.email '邮箱'
查看当前用户配置 git config --global --list
- 生成 SSH KEY
cmd 执行
ssh-keygen -t rsa -C '邮箱'
一直回车确定直到结束;根据日志信息里面的 SSH KEY 存储路径找到 .ssh/id_rsa.pub 文件(复制文件中的密钥)
- Gitlab 上配置 SSH KEY
- 在gitlab上创建一个空白项目2. 初始化本地仓库
git init
- 与远程仓库建立连接
git remote add origin 远程仓库链接
- 从工作区添加到暂存区
git add 文件列表
- 从暂存区提交到本地仓库
git commit -m “描述”
- 本地仓库推送到远程库
Git 命令git push -u origin 分支
全局配置
git config --global user.name "kuangshen" #名称 git config --global user.email 24736743@qq.com #邮箱 git config --global --list #查看当前用户配置
创建仓库
git init # 在当前目录新建一个Git代码库 git clone [url] # 克隆远程仓库
文件状态
git status [filename] #查看指定文件状态 git status #查看所有文件状态
- Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
- Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
- Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
日志展示
查看提交的日志,从近至远,当历史记录过多,查看日志有分页效果,一页展示不下。
下一页:空格 上一页:b 到尾页了显示END 退出:q
方式1:git log 方式2:git log --pretty=oneline 方式3: git log --oneline 方式4: git reflog
HEAD@(数字) 这个数字含义:指针回到当前历史版本需要走多少步
提交与修改
git add 工作区内容添加到暂存区
git add [file1] [file2] ... #添加一个或多个文件到暂存区 git add [dir] #添加指定目录到暂存区,包括子目录 git add . #添加当前目录下的所有文件到暂存区
git commit 暂存区内容添加到本地仓库
git commit -m [message] # 提交所有文件 git commit [file1] [file2] ... -m [message] # 提交指定文件
git diff 比较文件差异
git diff [file] # 显示暂存区和工作区的差异 git diff --cached [file] 或者 git diff --staged [file] # 显示暂存区和上一次提交(commit)的差异 git diff 版本号 # 和指定版本进行比较 git diff 版本号 文件 # 如:git diff 3aecd8e README.md
git rm 将文件从暂存区和工作区中删除
git rm# 将文件从暂存区和工作区中删除 git rm –r # 递归删除整个目录中的所有子目录和文件 git rm -f # 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f git rm --cached # 只从暂存区域移除,仍然保留在当前工作目录中
版本回退
命令语法格式:git reset [–soft | --mixed | --hard] [HEAD]
soft参数:本地库的指针移动的同时,暂存区和工作区不动
mixed参数:本地库的指针移动的同时,重置暂存区,工作区不动
hard参数:本地库的指针移动的同时,重置暂存区,重置工作区
git reset --hard 8303e6d # 回退到指定版本,或者HEAD~数字,比如HEAD~3回退到上上上个版本号 git reset --mixed 8303e6d git reset --soft 8303e6d
分支管理
# 列出所有本地分支 git branch # 列出所有远程分支 git branch -r # 新建一个分支,但依然停留在当前分支 git branch [branch-name] # 新建一个分支,并切换到该分支 git checkout -b [branch] # 切换分支 git checkout [branch] # 删除分支 git branch -d [branch-name] # 删除远程分支 git push origin --delete [branch-name] # 本地分支推送到远程分支 git push origin [branch-name] # 合并指定分支到当前分支 git merge [branch]
合并分支可能出现冲突,原因:在同一个文件的同一个位置修改
解决:手动修改冲突文件,再通过 git add . 、git commit -m “修复代码冲突”
远程操作
git remote 远程仓库操作(管理本地仓库和远程仓库的连接)
git remote # 显示所有远程仓库 git remote show [remote] # 显示某个远程仓库的信息 git remote add [shortname] [url] # 添加远程版本库 git remote rm name # 删除远程仓库 git remote rename old_name new_name # 修改仓库名
git fetch 从远程获取代码库
从远程获取最新的分支到本地,不会自动merge
git pull 下载远程代码并合并,相当于fetch+merge
<远程主机> <远程分支名>:<本地分支名>
例:git pull origin master:brantest # 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git push 上传远程代码并合并
git push <远程主机> <本地分支名>:<远程分支名>
git push origin master #将本地的 master 分支推送到 origin 主机的 master 分支,如果本地分支名与远程分支名相同,则可以省略冒号:<远程分支名>



