由工作区 + 暂存区 + 本地库构成
通过 git config --list 查看基本信息
主要就是三个:username,password,email
由于有敏感信息,就不截图了
# 设置用户名
git config --global user.name "username"
# 设置密码
git config --global user.password "password"
# 设置邮箱
git config --global user.email "email"
查看工作区与暂存区的差别。
这里创建一个新文件status.txt
git status 发现了工作区有 status.txt而暂存区没有

git add “文件” 将指定文件从工作区提交到暂存区,如果是“.” 则代表提交工作区所有文件。

将暂存区文件提交到本地库

查看历史日志,从近到远,以分页的形势展示(当前屏幕展示不下才会分页)。按b上一页,按空格下一页,按q退出。

以美化的形式,展示。省略了Author和Date

在 git log --pretty=oneline 的基础上只保留了版本号的后七位

提供了回到某个版本的回滚次数 如: HEAD@{1}

通过git reset --hard 版本号回到指定版本
–hard 参数是让工作区,和暂存区内容跟着本地库一起回到指定版本

git remote -v 查看远程仓库地址别名

git remote add "别名“ ”仓库地址“ 给远程仓库地址起别名

git diff “文件” 比较文件在工作区和暂存区中的具体区别(改变),文件为“."代表比较所有文件。
和 git status 不一样,git diff 会列出具体的文件变动。

git diff "版本号” “文件” 还能比表文件在暂存区和某个版本的区别

从远程拉取代码到本地,未合并,则内容不会在工作区体现
# git push "仓库别名" “分支名” 拉取合并远程仓库
git push origin master
# git push 操作 = git fetch + git merge
# git push origin master 等价于
git fetch origin master
git merge origin/master
git push “仓库别名” “分支” 推送代码到远程仓库,仓库别名通过git remote 设置
# 查看分支列表
git branch -v
# git branch "分支名" 添加新分支
git branch new_branch
# git checkout "分支名" 切换分支
git checkout dev
分支合并
# 这里将master分支内容合并到dev
# 1.先切换到dev分支
git checkout dev
# 2.合并
git merge master
当出现冲突后,会提示哪些文件冲突了。需要手动进入文件中选择保留哪些内容。
修改完后,继续老三样:git add + git commit + git push 即可
这里以你参与开源项目A为例
1.首先fork项目A到你自己的仓库C中
2.本地拉取自己仓库C中的项目,然后增加代码。继续老三样 git add + git commit + git push
3.新增的代码已经推送到仓库C中,在github中 通过 pull request 请求将C修改合并到开源项目A中
4.开源项目A的所有者就能看到这条合并请求,由其来决定是否合并。
仓库提供了两种方式:
1.https 如:https://github.com/xieruixiang/gcmose.git
2.ssh 如:git@github.com:xieruixiang/gcmose.git
ssh 需要在本地生成公私密钥,使用公钥内容在仓库中创建ssh公钥,即可进行ssh免密进行拉取,推送等操作。
# 生成公私密钥 ssh-keygen -t rsa -C "邮箱"
ssh-keygen -t rsa -C xxxx@qq.com