先创建本地仓库后再创建github仓库
1、git init #建立git仓库
2、git add java编程思想学习笔记.docx #将项目的文件添加到仓库中
3、git commit -m "java编程思想学习笔记第一次上传到远程仓库" #commit到暂存区
4、去github上创建自己的Repository,并复制仓库地址
5、git remote add origin https://github.com/cfhy/ReadBookNotes.git #将本地的仓库关联到github上,(添加远程仓库地址,保存在origin变量中)
6、git branch --set-upstream-to=origin/master master 关联分支
7、git pull origin master --allow-unrelated-histories #上传github之前,要先pull一下(新建的远程仓库不需要这一步,当远程仓库已有代码时,首次关联远程仓库需要如下操作)
8、git push -u origin master #上传github,,中间可能会提示输入Username和Password
添加文件到暂存区
git add 文件名 #添加单个文件;
git add -A #表示添加所有内容;
git add . #表示添加新文件和编辑过的文件不包括删除的文件;
git add -u #表示添加编辑或者删除的文件,不包括新添加的文件。
提交文件到暂存区
git commit -m "描述内容"
推送到github仓库
git push (如有冲突,则git pull 一下,解决冲突再次push)
先创建github仓库后进行修改
首先克隆到本地:git clone https://github.com/cfhy/ReadBookNotes.git
然后代码修改后,add,commit,push即可
分支操作
git branch [-v] #查看分支
git branch 分支名 #只创建分支
git checkout dev #切换分支
git checkout -b dev #创建并切换分支
git checkout -b dev origin/dev #拉取远程分支到本地分支,本地分支无需先创建
git branch -d 分支名 #删除分支
git push origin master/分支名 #推送到远程分支
git pull origin dev #拉取分支
git pull origin dev test #拉取远程分支到本地新分支
git branch --set-upstream-to=origin/<branch> dev #追踪远程分支
git merge 分支名 #合并分支,把想合并的分支合并到当前分支
修改配置
git config --global user.name "your name" #配置用户名
git config --global user.email "your email" #配置邮箱
ssh-keygen -t rsa -C "your email" #配置ssh,注意没有git
git config --global --list #查看配置
git config --global --unset xx #删除配置项
git config --global credential.helper store #免每次push都需要输入用户名和密码
版本回退
git reset --hard commit_id(一般commit_id只需要写前5位因为每个id都是唯一的,前5位就可以识别了);
git reset --hard HEAD^ #回退到上一个版本;
git reset --hard HEAD~5 #回退到前5个版本;
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
查看提交历史
git log #查看提交历史
git log --graph --pretty=oneline --abbrev-commit #查看分支commit_id
撤销修改
git checkout --aa.txt #撤销工作区某文件的修改
git reset HEAD aa.txt #撤销暂存区的修改
查看工作区状态,是否有内容需要操作
git status
获取fork仓库的原仓库更新的代码
1、git remote add upstream <原仓库github地址>
2、git remote -v #查看当前仓库的远程仓库地址和原仓库地址
3、git fetch upstream #获取原仓库的更新。使用fetch更新,fetch后会被存储在一个本地分支upstream/master上。
4、git merge upstream/master #合并到本地分支。切换到本地master分支,合并upstream/master分支。
5、git log #查看原仓库的更新
6、git push origin master #如果需要自己github上的fork的仓库需要保持同步更新,执行git push进行推送
解决方法: git pull --allow-unrelated-histories
git stash命令:
1、git stash 执行存储
2、git stash save "message" 执行存储并添加描述,方便查找
3、git stash list 查看stash
4、git stash show 查看某个stash的具体情况,比如:git stash show stash@{1}
5、git stash show -p 查看某个stash的文件修改的具体情况,比如:git stash show stash@{1} -p
6、git stash apply 应用某个存储,但不会把存储从存储列表中删除,比如git stash apply stash@{1}
7、git stash pop 应用某个存储,同时把存储从存储列表中删除,比如git stash pop stash@{1}
8、git stash drop stash@{$num} 从列表中删除这个存储
9、git stash clear 删除所有缓存的stash