Skip to content

cvno/Git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git Note Build Status

基本命令

git init        # 初始化 生成 .git 文件
git status      #  查看状态
git add .       # 把所有文件添加到暂存区
git add '文件名'   # 添加到缓存去
git reset HEAD .    # 撤销所有的已经add的文件
git reset HEAD -filename # 撤销某个文件或文件夹
git commit -m '提交信息'    # 添加到分支

git commit -a -m '提交信息'   # 一句命令来提交
git checkout -b '分支'    # 创建分支并切换
git branch -vv # 查看本地分支与远程分支之间关联的关系
git commit --amend   # 修改已经commit的log说明 已push的无法修改

回滚

git log
git reset --hard '版本号'  # 一步到位 git log 中的版本号(随机字符串)
git log   # 这里没有回滚之前的内容

git reflog  # 这里有所有的版本,整个的状况

# 再回滚回去
git reflog
git rest --mix a615783
git checkout '文件名'
git log     # 查看日志 谁提交的,提交信息

开发模式

stash方式

处理bug

git stash     # 将当前已经做过的修改,保存到一个临时地方

# 修复 bug
git add .
git commit -m '修复bug'
git stash list  # 查看临时暂存地方
git stash pop   # 临时地方内容重新放回工作区

# 出现冲突,手动解决
'''
<<<<<<< Updated upstream
同城交友网站
张小戈
=======
同城交友网站
张小戈
开发直播功能到一半
>>>>>>> Stashed changes
'''

出现冲突

bug 出现的地方可能和正在开发的文件是同一个

其它命令

git stash apply '名称'
git stash drop  '名称'
git stash list
git stash pop

分支

分支 版本用处
master 只保留线上版本
 dev(develop) 保存所有开发版本
 bug 修复 bug版本/可删除
git branch      # 查看当前在那个分支
git branch dev      # 创建分支(注意当前所在分支)
git checkout master     # 进入分支

出现bug

git checkout master     # 回主分支来修复 bug
git branch bug          # 创建 bug 分支
git checkout bug        # 进入 bug 分支

合并

git checkout master     #  回主分支
git merge bug           # 同步已修复 bug 的分支

# 如果出现冲突,手动解决
git add .
git commit -m '解决冲突'

# 删除分支
git branch -d bug

没有冲突

三者都可以完成合并并提交新功能,但是日志记录会有差异,如:前两者版本记录中会出现合并,而第三种可以保证版本记录干净整洁。

  • git pull origin master 然后 git push origin master
  • git fetch origin master 然后 git merge origin/mastergit push origin master
  • git fetch origin master 然后 git rebase origin/mastergit push origin master

远程仓库

基本使用

# ---------------- home -----------------
# 新建项目或已有项目
git clone https://github.com/a877252372/wwwww.git

cd wwwww

# 设置远程仓库 并设置别名/已有项目则省略
# 此处使用 https 可能需要输入用户名&密码
git remote add origin https://github.com/a877252372/wwwww.git

git checkout master     # 切换分支
git push origin master      # 推送 同步到仓库 / 可能需要输入用户名&密码

git branch dev origin/dev       # 创建一个镜像分支
git checkout dev 

# 提交代码
git add .
git commit ...
git push origin dev     # 同步到仓库

# ---------------- 公司 -----------------
# 下载代码到本地
git checkout dev
git fetch origin dev    # 同步
git pull origin dev     # 劲大

fetch/pull 区别

家/公司忘记提交代码

push/下载 代码,先开发别的功能

git branch dev
git pull origin dev
# 别的功能:
git add .
git commit ...
git push origin dev

# 回到家/功能    !!!!
'''先把代码下载到本地'''
git pull origin dev     # 同步到本地
# 然后解决冲突

协同开发

A----B----C(组织/邀请)

  • 同一个远程仓库
    1. 代码
    2. 开发 ing
    3. 合并
      • 没问题 > pass
      • 有问题 > 改

提交晚了出错

fork

拉到自己的仓库,帮别人修改 bug/修改代码

  1. fork别人项目
  2. git clone xxxxxx
  3. 修改
  4. 提交【自己】(自己创建的分支fork仓库)
  5. new pull request(去别人的代码仓库提交)
  6. 等(等别人通过)
  7. fork别人项目

配置用户信息

git config --local user.name '名称'
git config --local user.email '邮箱'

其它命令

git ls-tree head   # 查看版本中所有文件 不包括暂存区
git ls-files -s    # 查看暂存区和版本中所有文件
vim .git/config     # 查看当前项目配置

目录-文件-锚点

在写README.md文件时,GitHub不能解析[toc] 这个命令,那我们就来手写.

前提: 使用的是markdown语法的超链接 [描述](网址),所有的url地址前缀都是基于当前 存储库

锚点

基于当前页面

[锚点一](#锚点一)
[锚点二](#锚点二)

锚点一

锚点二

锚点一

锚点二

连接到文件和目录

当前存储库 markdown 生成的url 前缀统一是当前存储库的根目录

  1. 链接接文件 or 目录
[文件1](/文件1)
[文件2](/文件2.py)
[目录1](/目录1)

文件1

文件2 不存在的文件示范

目录1

  1. 链接到目录下的文件
[文件2](/目录1/文件2.py)

文件2

不管这个存储库有多少级目录,不管README.md在哪个文件夹下面,链接目录下在文件要基于存储库的根目录至这个文件的绝对地址写全,

markdown生成的url都是基于存储库根目录来进行生成,不信?试试看 传送门

PS: [] 中括号的内容可以随意写,() 小括号里面的才是真实的URL地址

忽略文件

vim .gitignore Python .gitignore Github

Github连接方式

https

ssh

# 生成
ssh-keygen
# 查看并拷贝公钥
cat ~/.ssh/id_rsa.pub
# 公钥放在 github
# clone 克隆
git clone '仓库 ssh 地址'

About

Git 基本使用

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages