git官网下载: https://www.git-scm.com/download/win
ssh 连接
生成密匙: ssh-keygen -t rsa -C "email"
在~/.ssh中生成了key,把.pub复制到github的setting中
测试: ssh -T git@github.com
git status
查看文件在工作区还是暂存区还是仓库
git add
将文件从工作区提交到暂存区
git commit -m 提交描述
将文件从暂存区提交到仓库
git初始化及仓库创建和操作
基本信息设置
- 设置用户名
git config --global user.name 'name'
- 设置用户名邮箱
git config --global user.email 'email'
也可以编辑~/.gitconfig
初始化一个新的git仓库
- 创建文件夹
- 在文件内初始化git (创建git仓库)
cd folder
git init
生成了.git文件,存着本地仓库的信息。
向仓库添加文件
- 新建文件
git add filename
提交到暂存区git commit -m '提交描述'
提交到git仓库
修改文件
修改后
git add filename
提交到暂存区git commit -m '提交描述'
提交到git仓库
删除仓库文件
删除工作目录文件后
git rm filename
git commit -m '提交描述'
提交到git仓库
git管理远程仓库
git push
把本地仓库同步到远程仓库
git克隆操作
将远程仓库复制到本地
git clone 仓库地址
查看config: git config --list
设置账号密码
.git/config
[remote "origin"]
url = https://用户名:密码@github.com/Feibilun/test.git
修改url 使用git协议:
[remote "origin"]
url = git@github.com:Feibilun/test.git
fetch = +refs/heads/*:refs/remotes/origin/*
其他指令
git log
查看日志
git log --all --graph --decorate
git cat-file -p hash
git checkout hash
git checkout hello.txt
忽略head之后的修改,把文件变回head时的状态
git diff
显示上次snapshot之后的变化
(两次之间)
branch
git branch
查看当前有什么分支。
git branch -vv
详细信息
git branch cat
新建cat分支。
git checkout cat
转到cat分支
(cat,master的commit 的id是一样的)
在cat分支做改动后commit:
再checkout到master:
git checkout -b dog
新建并转到dog分支。
修改源文件增加dog function, 并commit
转到master,并merge cat
git checkout master
git merge cat
此时源代码:
接下来merge dog,会报错,修改后,git add, git merge --continue
git merge --abort
取消merge。
git remote
git remote add origin ../remote
origin是r给emote起的名字
git push origin master:master
git branch --set-upstream-to=origin/master
and git push
git remote add origin1 git@github.com:Feibilun/remote.git
git push origin1 master
git clone
git clone ./remote demo2
git clone --shallow
浅拷贝。
git fetch
取得origin的commit
git pull相当于git fetch + git merge
编辑.gitignore文件指定忽略哪儿些文件。
比如在里面写 *.o
reference
watch?v=2sjqTHE0zok