git使用常见问题

1、.gitignore文件不生效(如果先将项目添加的git仓库,后添加忽略文件,不清理git的缓存,忽略文件是不会生效的。)

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

最后更新.gitignore文件再次提交

2、不同分支合并或拷贝单个文件

另外如果只想将feature分支的某个文件f.txt合并到master分支上。
1: git checkout master
2: git checkout --patch feature f.txt
第一个命令: 切换到master分支;
第二个命令:合并feature分支上f文件到master分支上,将feature分支上 f 文件追加补丁到master分支上 f文件。你可以接受或者拒绝补丁内容。即提示输y或者n

如果只是简单的将feature分支的文件f.txt copy到master分支上;
git checkout master
git checkout feature /p/d/f.txt

解释:
y - 存储这个hunk
n - 不存储这个hunk
q - 离开,不存储这个hunk和其他hunk
a - 存储这个hunk和这个文件后面的hunk
d - 不存储这个hunk和这个文件后面的hunk
g - 选择一个hunk
/ - 通过正则查找hunk
j - 不确定是否存储这个hunk,看下一个不确定的hunk
J - 不确定是否存储这个hunk,看下一个hunk
k - 不确定是否存储这个hunk,看上一个不确定的hunk
K -不确定是否存储这个hunk,看上一个hunk
s - 把当前的hunk分成更小的hunks
e - 手动编辑当前的hunk
? - 输出帮助信息

 3、git比较两个分支的文件的差异

git diff branch1 branch2 --stat   //显示出所有有差异的文件列表
git diff branch1 branch2 文件名(带路径)   //显示指定文件的详细差异
git diff branch1 branch2                   //显示出所有有差异的文件的详细差异

4、撤销修改
git checkout -- "file_name" 将代码回退
如果已add到暂存区 就回退到刚添加到暂存区的版本
如果没add到暂存区 就回退到版本库的版本
5、删除文件
一般是从文件管理器将文件删除
git status查看哪些文件被删除
如果确实要删除该文件 就使用 git rm "file_name" 将该文件从版本库中删除
如果是删错了 可以使用 git checkout -- "file_name" 将误删文件恢复到最新版本

6、单个文件历史记录
git log --oneline .a.txt
7、单个文件回退到历史版本
git reset 120a893 a.txt

8、查看单文件工作区和版本库里面最新版本的区别(上下键查看,q是退出命令)
git diff HEAD -- readme.txt

9、在工作中,遇到一个问题,在git merge后,发生冲突,而当冲突较多的时候,逐个检查冲突,有的时候会遗漏一些文件,导致带有冲突标记的文件上传到了Git服务器上。
使用以下命令可以快速检查是否还存在有带有冲突标记的文件。
git diff --check

10、删除本地分支

git branch -d 分支名

11、删除远程分支

git push origin --delete 远程分支名称

取消远程关联
git remote remove origin
从命令行创建一个新的仓库
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://10.0.0.63/SH/test_lib.git
git push -u origin master
从命令行推送已经创建的仓库
git remote add origin http://10.0.0.63/SH/test_lib.git
git push -u origin master

原文地址:https://www.cnblogs.com/sung1024/p/11394258.html