git 操作

如果已存在项目

1、在git bash里 进入项目所在目录, git init //初始化

2、git config --globle user.name 'happy' //设置远程仓库

3、git config --globle user.email 'stone8386@sina.com'  //设置远程仓库

4、用浏览器打开远端git 仓库, 比如 https://gitee.com/, 新建仓库,比如salary, 然后复制 克隆地址, 比如“https://gitee.com/happy76819/salary.git”

5、git remote add salary 'https://gitee.com/happy76819/salary.git'   //设置远程仓库地址

6、git pull salary master //从远程仓库拉取文件和本地文件合并

7、git add -A  //提交到本地临时库

8、git commit -m'first commit' //提交到本地仓库

9、git  push --set-upstream salary master

10、 git push   //上传到远程仓库

 

git status //当前状态

git reset HEAD  <file> //把暂存区恢复到之前的状态  用本地仓库文件覆盖暂存区文件 git reset HEAD~2 回到前2个快照

git chechout --<file> //用暂存区的文件覆盖工作区的文件

git log //查看历史记录

git reset --mixed HEAD~  ([--mixed],默认添加该参数)

-移动HEAD的指向, 将其指向上一个快照

-将HEAD移动后指向的快照回滚到暂存区

git reset --soft HEAD~

移动HEAD指向,将其指向上一个快照, 不会把仓库文件覆盖到暂存区

git reset --hard HEAD~

移动HEAD的指向,将其指向上一个快照

将HEAD移动后 指向的快照回滚到暂存区

将暂存区的文件还原到工作目录

 git reset {id} 直接回滚到指定快照  (git log 查看id)

git reset 版本快照 文件名/路径

比较工作区和暂存区

git diff

执行带 --amend 选项的commit 提交命令, git就会更正最近一次提交 不会产生新的快照

git commit --amend -m '新的说明'

删除文件

git rm <filename>  //删除只是工作目录和暂存区域的文件, 也就是取消跟踪, 在下次提交时不纳入版本管理

git reset --soft HEAD~  把仓库里的快照恢复到上一快照

重命名

git mv oldfilename newfilename

git 分支

创建分支

git branch  分支名称

git log --decorate

切换分支

git checkout 分支名

git log --decorate --online --graph --all

合并分支

git merge 分支名

git checkout -b 分支名   创建分支,并切换过去

删除分支

git branch -d 分支名

Git忽略规则(.gitignore配置)不生效原因和解决

   
第一种方法:
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,
这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。
  
解决方法: git清除本地缓存(改变成未track状态),然后再提交:
[root@kevin ~]# git rm -r --cached .
[root@kevin ~]# git add .
[root@kevin ~]# git commit -m 'update .gitignore'
[root@kevin ~]# git push -u origin master
 
需要特别注意的是:
1).gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
2)想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,
   对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。
 
第二种方法:(推荐)
在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
[root@kevin ~]# git update-index --assume-unchanged PATH                  //在PATH处输入要忽略的文件

 

原文地址:https://www.cnblogs.com/leon-ytparty/p/10566508.html