1.0 第一件事git config
git config --list --show-origin
查看所有git配置以及所在文件
- 使用
git config --global
可以设置git的基本信息(如用户名、邮箱),使用--unset
取消设置
- 配置你的名称、邮箱以及编辑器
git config --global user.name "191220000-Zhang San"
git config --global user.email "zhang3@email.com" git config --global core.editor vim
|
2.0 初始化仓库
- 本地仓库:
git init
创建一个新的 git 仓库,其数据会存放在一个名为 .git
的目录下
删除仓库:删除 .git 文件夹
git add <文件名字,*表示全部> git commit -m 'initial project version'
|
- 远程仓库:
git clone
克隆远端仓库
git clone <网址> <仓库存放文件夹名>
|
3.0 记录更新
git status
查看结果(会显示你对什么文件做了什么修改、操作),显示当前的仓库状态;-s
参数简短输出
git diff
展示修改,具体查看修改内容
git ls-files
查看git已跟踪文件
git commit -m "comment"
创建一个新的提交
git rm
移除文件,--cached
表明只删除版本文件,保留本地文件
git rm -r --cache .
取消跟踪所有文件
git mv
移动文件
4.0 提交历史、撤销操作
4.1 提交历史
git log
查看日志
git log --pretty=oneline
简单日志,每次提交只有附带注释的一行
4.2 撤销
放弃修改
git restore .
:撤销未commit的修改。 git2.32版本后取代 git reset
进行许多撤销操作
git restore <file_name>
: 将暂存区的修改重新放回工作区(--staged
将包括对文件自身的操作,如添加文件、删除文件)
切换旧版本
git checkout <editon_id>
:恢复旧版本,会离开main分支,分离头指针,需要 git switch -
回到main分支
git commit --amend
: 编辑提交的内容或信息
git reset HEAD <filename>
: 恢复暂存的文件(建议使用restore)
git checkout -- <filename>
: 丢弃修改
5.0 远程仓库
远端操作
git remote
: 列出远端仓库名称,-v
附加网址
git remote add <name> <url>
: 添加一个远端
git push <remote> <branch>
:将branch分支推送到remote服务器
git branch --set-upstream-to=<remote>/<remote branch>
: 创建本地和远端分支的关联关系
git remote show <remote>
:查看<remote>仓库的信息
git fetch
: 从远端获取对象/索引
git pull
: 相当于 git fetch; git merge
git clone
: 从远端下载仓库
注意,clone
后push
自己的代码会提示error: remote origin already exists.
远端仓库已存在,需要进行以下操作:
git remote rm origin
删除远程库关联
- 关联自己的仓库,[[#…/指南/Github使用指南 远程同步|教程]]
6.0 分支
git branch <name>
: 创建分支
git checkout <name>
转到分支name, -b
(brach)创建新分支name
git merge <brach_name>
: 合并到当前分支
7.0 gitigore
# 所有.c文件 *.c # 所有chapter*/eg/文件夹的文件 chapter*/eg/ # 所有子目录下的.class文件 **/*.class # 不忽略hello.c文件 !hello.c
|
NJU讲解
B站王慧妍老师:BV1Bu4y1K7yr
- git clone:从仓库下载一个版本,远端拉一个仓库
- git:自动化工具,帮你合并代码
- 工作区:显示屏上看到的代码版本
- 缓存区:被git追踪(git ignore跳过追踪)
- git commit:记录版本(不会出错的代码),增加节点,像一个快照,给此版本一个id;commit到版本trace中
- git特性:分布式,而不是集中的;git的各个版本在不同电脑上,可以两个人做两条线的分支,最后在merge
- git push/pull:把版本记录扔到一个可以共享的地方(如GitHub或其他托管仓库);或把别人的代码拉下来
- git merge:把大家的代码合并到一个版本
- check out:从某个版本分叉出去,一条独立的修改代码的记录,完成后再merge进主分支
- reset:一般用不到。回到以前的某个版本(需要id),丢弃之后的所有更改
- git add:把当前文件放到暂存区,以使之被跟踪
- 体验git:visualizing git concepts with d3
廖雪峰
创建版本库 - 廖雪峰的官方网站 (liaoxuefeng.com)
基础使用
- git init 初始化一个git仓库
- git add (文件) 把文件加入仓库
- git commit -m “wrote a readme file” 提交文件到仓库,-m是提交说明
- git status 查看结果(会显示你对什么文件做了什么修改、操作)
- 例子,修改完文件用status、diff查看修改,add提交之后再用status确认一遍修改,最后commit
- 提交完以后git status会显示没有要提交的修改(因为没有修改)
- git log 查看提交日志
- git reset --hard HEAD^ 回退到上一版本,HEAD表示当前版本,也可以写成HEAD~100
- 怎么回去?找到commit id,git reset --hard id
- 找不到id?使用git reflog查看过往命令
- 暂存区:git add 实际上是把文件添加到暂存区
- git checkout – file 丢弃工作区更改,回到上一次git add 的状态(此时git status为空)
- git reset HEAD file 把暂存区某个文件的更改撤销掉(此时status为not staged)
[[…/指南/Github使用指南#Github 远程仓库|远程同步]]
git remote add origin^ git@github.com:账户名/仓库名.git // ^origin是远程仓库名字 git push -u 远程仓库名字 master /* 加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来 */
|
Git如何进行多人协作
使用Git多人协作,就要用到分支。
分支的特点是,将不同功能分配给不同的人开发,各个分支之间彼此独立、不受干扰。等待开发完成,只需要合并代码就可以了。