[git] 操作手册 --不定期更新

来源:互联网 发布:mac发布会时间 编辑:程序博客网 时间:2024/04/19 13:47

本地分支删除

git branch -d <branchname>

删除远程分支操作

git push <库名称> --delete <branch_name>

更新已经被删除的远程分支链接

git fetch <库名称> -p

删除本地 tag

git tag -d <tag_name>

删除远程 tag

git push origin --delete tag <tag_name>
或者
git push origin :refs/tags/<tag_name>

删除远程分支及标签

git push origin <branch_name> --delete <tag_name>

对已经进行版本控制的文件或文件夹,进行取消版本控制并保留本地代码文件的操作

1.git rm -r -n --cached <file_name>
-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览
2.git rm -r --cached <file_name> 最终执行命令
3.git commit -m "移除文件或文件夹的版本控制" 提交
4.git push origin <branch_name> 提交到远程服务器

.gitignore 文件

对于自动生成的文件, 日志, 编译的临时文件等. 可以对其进行配置, 让 git 不追踪这些文件

规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!
取反
glob 模式是指 shell 所使用的简化了的正则表达式.
* :匹配零个或多个任意字符
[abc] :只匹配括号内的任意一个字符
[0-9] :使用短划线表示范围, 可以匹配0到9之间的任何字符.
? :匹配任意一个字符
:匹配任意的中间目录,例如a//z可以匹配 a/z,a/b/z,a/b/c/z 等
如下给出一个样板:

 # 忽略所有以 .c结尾的文件> *.c> # 但是 stream.c 会被git追踪> !stream.c> # 只忽略当前文件夹下的TODO文件, 不包括其他文件夹下的TODO> 如: subdir/TODO> /TODO> # 忽略所有在build文件夹下的文件> build/> # 忽略 doc/notes.txt, 但不包括多层下.txt例如: doc/server/arch.txt> doc/*.txt> # 忽略所有在doc目录下的.pdf文件> doc/**/*.pdf> # 忽略所有以 .c结尾的文件> *.c> # 但是 stream.c 会被git追踪> !stream.c> # 只忽略当前文件夹下的TODO文件, 不包括其他文件夹下的TODO> 如: subdir/TODO> /TODO> # 忽略所有在build文件夹下的文件> build/> # 忽略 doc/notes.txt, 但不包括多层下.txt例如: doc/server/arch.txt> doc/*.txt> # 忽略所有在doc目录下的.pdf文件> doc/**/*.pdf 

修改还未 push 的 commit 信息

git commit --amend

撤销已 commit 但是未 push 的代码

  1. git log
    找到你想撤销的 commit_id

  2. git reset --hard commit_id
    完成撤销,同时将代码恢复到 commit_id 对应的版本

  3. git reset commit_id
    完成 Commit 命令的撤销,但是不对代码修改进行撤销,可以直接通过 git commit 重新提交对本地代码的修改

代码与上一版本对比

git diff <file_name>

推荐使用代码提交流程

  1. git add <fileCode1>、<fileCode2>
  2. git commit -m "commit 信息"
1 0
原创粉丝点击