git操作记录

建立本地仓库(ubantu)

1.查看用户名邮箱

git config user.name
git config user.email

2.设置用户名邮箱

git config --global user.name "zhanghs"
git config --global user.email "zhang@163.com"

3.删除配置

git config --global --unset user.name

4.创建本地仓库

#在任意文件夹下创建antiBank文件夹
mkdir antiBank
#初始化为git库
git init

5.向本地仓库添加文件

#创建文件readme.md, 添加到暂存区里
git add readme.md
#提交readme.md到仓库
git commit -m 'readme.md 添加内容'
#git status 查看是否有文件未提交
#git diff readme.md查看未提交的文件和版本库中的文件有何差别#
#git log查看修订记录(一行显示git log --pretty=oneline)#
#回退到上一版本git reset --hard HEAD^,回退到上上版本git reset --hard HEAD^^.回退到100个版本之前git reset --hard HEAD100

托管项目到github

1.生成gihub识别的凭证

ssh-keygen -t rsa -C "zhang@163.com"

生成的公匙在文件gitKey.public,私匙在gitKey里
2.将公匙添加到github,使自己能够提交代码

在github里点自己的头像-->setting-->SSH and GPG keys-->New SSH key, 输入上边生成的公匙

3.新建一个仓库,用于上传本地代码

在github里点头像旁边的加号(+)-->New Repository-->输入名字(zhang)-->Create Repository, 创建github仓库成功。地址为git@github.com:mather/zhang.git

4.上传本地仓库到github

#添加远程仓库,并起别名为origin
git remote add origin git@github.com:mather/zhang.git
#推送本地仓库到远程仓库
#git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master:master

代码下载到本地(windows)并提交(同一个github账号)

1.下载代码

#要用http协议,我用ssh协议总是失败
git clone https://github.com/mather/zhang.git

2.在里面添加文件

#在git bash里面用vim
vim readme-windows.md
#添加一行新内容退出
#提交文件到暂存区
git add readme-windows.md
#提交文件到本地仓库
git commit -m "windows 提交readme"

3.提交文件到github仓库

#切换远程仓库,如果本地有多个的话
git checkout master
#提交到远程仓库(不要有多余空格,不然会提交失败)
git push origin master:master

提交代码

--查看分支状态
git status
--查看改动内容,工作区和最后一次提交
git diff
--暂存区和最后一次提交
git diff --cached 或 git diff --staged
--比较两个分支
git diff <分支名1> <分支名2> 
--拉取分支
git pull
--此时如果提示有冲突, 临时保存
git stash
--再拉取分支
git pull
--恢复存储
git stash pop
--如果还有冲突(上一步可以合并同一文件的不同位置修改),就需要手动解决,如果无冲突,以下步骤提交代码
--暂存
git add .
--提交
git commit -m "comment"
--推送
git push

--注:git stash pop后无冲突会自动删除stash 列表,否则,需要执行git stash clear 或者git stash drop stash[0]手动删除

用到就记下

#删除仓库里的文件保留本地的
git rm --cached xx/

#忽略文件
#新建.gitignore文件,添加需要忽略的内容
  .gitignore
  target/
  .idea/
#记住密码
git config --global credential.helper store

#抹去git commit的所有修改
$ git checkout HEAD – test.txt
#抹去git add的所有修改
$ git checkout – test.txt
#回退上一次commit
git reset HEAD~

git rm –cached
#git rm命令是把建立的版本库索引(index)和那个文件一起删除了。加上cached之后,就只删除索引,不删除文件本身。
# 与git add相应的取消操作并不是git rm,而是git rm –cached。这是需要非常注意的地方

# 恢复更改的文件
git checkout — //未git add的文件
git reset HEAD //已经git add的文件,可以用这个取消add,然后用上一条命令恢复
git reset –hard HEAD //把全部更改的文件都恢复(小心使用,不然辛辛苦苦写的全没了)
原文地址:https://www.cnblogs.com/so-easy/p/11924040.html