1.下载安装
在终端输入git查看是否已经安装git
没有?点击下载
配置用户名:右击桌面,弹出终端窗口,在命令行输入:
$ git config --global user.name "Your Name" // 定义用户名
$ git config --global user.email "email@example.com" // 定义邮箱
$ git config user.name // 查看用户名
$ git config user.email // 查看邮箱
2.本地仓库操作
1.创建版本库
在D盘创建了learngit文件夹,在终端上切换到该目录,并输入如下指令:
git init // 初始化该目录,把这个目录变成git可以管理的目录此时可以看到在该目录下多了一个.git文件
2.提交文件到本地仓库
git branch dev // 新建dev分支
git checkout dev // 切换到dev分支
git checkout -b dev // 新建dev分支并切换到dev分支
git add readme.txt // 添加到栈中
// 反义:git reset HEAD readme.txt // 从栈中拿出来
git add . // 将所有修改过的工作文件提交暂存区
git commit -m "wrote a readme file" // 添加到本地仓库
git log --pretty=oneline // commit历史
git reset --hard HEAD^ // 返回到上一次的本地仓库版本
git reset --hard 2f5c // 返回到指定ID的本地仓库版本
3.从本地仓库检出文件
git checkout -- readme.txt // 从本地仓库检出到项目
4.本地仓库常用操作指令
git status // 查看文件状态
git diff readme.txt // 比较栈中和本地项目间的不同
git log --pretty=oneline // commit历史
git reflog 所有的历史(包括提交、检出等)
git branch 查看分支
git branch -d dev 删除dev分支
git merge feature1 合并当前分支和feature1分支(取两边文件最全的那一份文件内容,不管在哪个分支上进行合并,两个分支的内容都会合并到最新;有冲突的时候手动合并)
git log --graph --pretty=oneline --abbrev-commit 打印简写的commit记录
git merge --no-ff -m "merge with no-ff" dev 合并分支,能看出合并记录
git stash 加入缓存
git stash list 列表缓存队列
git stash apply stash@{0} 释放缓存,不删除缓存内容
git stash pop 释放缓存,同时删除缓存内容
git branch -D dev 强制删除dev分支
git reset <file> 取出暂存区中的文件
git reset -- . 取出暂存区中的所有文件
3.远程仓库操作
1.远程仓库常用操作
ssh-keygen -t rsa -C "1977288116@qq.com" 生成.ssh文件,主要为了github里面的key
生成的文件的路径:C:\Users\Administrator.ssh,然后点击下图中的New SSH key按钮,输入生成的文件的内容
git remote add origin git@github.com:1977288116/learngit.git 本地仓库和远程仓库建立连接
git remote remove origin 取消本地目录下关联的远程库
git push -u origin master 本地仓库内容全部提交到远程仓库(指定origin master为默认远程主机,以后git push 等价于 git push origin master)
git push origin master 将本地仓库内容提交到origin master远程仓库
git clone git@github.com:1977288116/gitskills.git 将远程仓库内容拷贝到本地当前分支
git remote 查看本地库关联的远程库
git remote -v 查看关联的远程库的详细信息
git checkout -b dev origin/dev 远程仓库down到新建的名字为dev的本地仓库
git pull 下载
git push --set-upstream origin dev 将当前本地仓库和远程仓库dev建立连接
git branch -a 查看远程分支
git remote rm origin 删除关联的名为origin的远程库
git config --global color.ui true 配置颜色
git add -f test3.txt 强制添加已忽略的文件
git check-ignore -v test3.txt 查看.gitignore文件里面的内容拼写是否有误
gitk 代码树
$ git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
-- 删除远程分支
git rm <file> --cached # 从版本库中删除文件,但不删除文件
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
$ git push origin --delete <branchName>
-- 删除远程分支方法
git branch -r -d origin/branch-name
git push origin :branch-name
删除tag这么用:
git push origin --delete tag <tagname>
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :<branchName>
这是删除tag的方法,推送一个空tag到远程tag:
git tag -d <tagname>
git push origin :refs/tags/<tagname>
两种语法作用完全相同。
2.标签操作
git tag v1.0 新建标签v1.0
git tag 查看所有标签
git log --pretty=oneline --abbrev-commit 查看所有简写的提交
git tag v0.9 6224937 新建标签v0.9
git tag -a v0.1 -m "version 0.1 released" 3628164 创建带有说明的标签
git tag -s v0.2 -m "signed version 0.2 released" fec145a 用私钥签名一个标签
git tag -d v0.1 删除标签
git push origin v1.0 上传指定名称的标签
git push origin --tags 上传所有标签
git tag -d v0.9 删除本地标签
git push origin :refs/tags/v0.9 删除本地标签后提交到远程——即删除远程标签
git clone -b v0.9 下载指定标签
3.合并远程分支
1、把源码clone到本地库中
git clone my_git_site
2、在本地新建一个与远程的0.2版本相同(被合并的版本)的0.2分支
git checkout -b 0.2 origin/0.2
3、返回到master版本
git checkout master
4、把本地的0.2合并到master
git merge 0.2
5、把本地的master同步到远程
git push origin master
4.删除远程文件
1.git rm test.txt 从版本库中删除文件,本地文件也会删除
2.git commit -m “commit file test.txt”
3.git push origin master:chenjl master是本地分支,chenjl是远程分支
5.下载远程仓库指定分支到本地仓库
1.初始化本地仓库为git仓库
git init
2.本地仓库和远程仓库建立连接
git remote add origin git@github.com:1977288116/learngit.git
3.新建本地分支对应远程分支名
git checkout -b dev
4.远程分支拷贝到本地分支
git clone -b dev git@github.com:1977288116/learngit.git
6.撤回远程提交
1.查看提交历史
git log
2.返回上一个版本
git reset --hard f0dd038
3.推送到远程仓库
git push origin master:master --force
4.反撤回远程提交
git reset --hard 1094a
7.git撤销commit,但未git push的命令
在git push的时候,有时候我们会想办法撤销git commit的内容
1、找到之前提交的git commit的id
git log
找到想要撤销的id
2、git reset –hard id
完成撤销,同时将代码恢复到前一commit_id 对应的版本
3、git reset id
备注:
红色:只在项目里
绿色:已添加到暂存区
github和码云一样
文件同一目录新建.gitignore文件