1、push提交流程
git clone xxx #克隆工程
git pull #拉取/对齐
git add xxx #把文件放到缓存区
git commit -m “xxx” #提交变更
git push origin HEAD:refs/for/develop%r=wang.guize@zte.com.cn#推送到代码库并添加审核人员
2、reset提交流程
主要用于提交出现问题之后,需要回滚,然后在提交的情况比较多:
命令格式:git reset [--hard|soft|mixed] [或HEAD]
例子:git reset --hard HEAD^
Option选项主要为-hard|soft|mixed,其中--hard为硬重置,直接擦除修改的文件;--soft为软重置,把本地仓库回退到暂存区,git status看到是绿色;--mixed介于软硬之间,是混合重置,把仓库回退到文件区。
对象选项主要是两种,commit_id或HEAD,commit id是回退到某个节点,而HEAD是回退次数。(commit id可以通过git log命令来查看)
下面根据列举一些实用场景:
1、最后一次commit有错误,我想把它完全擦除
git reset --hard HEAD
2、我发现最近几次提交都有问题,想要回退到很久之前的版本
先通过git log找到对应的commit id
git reset --hard commit_id
3、最后一次commit有错误,我想退回去修改
git reset --mixed HEAD^
3、checkout两种功能
git checkout dev #切换到dev分支
git checkout 具体文件路径和文件名 #用远程文件覆盖本地文件
4、gitignore:忽略不需要跟踪的文件
写法示例:
*.pyc #所有pyc文件
cms/__init__.pyc #特定文件
*.class #所有class文件
/.idea/* #根目录下.idea下的所有文件
注:如果添加.gitignore文件后不生效,就是因为.git中有缓存文件,需要清理缓存git rm -r --cached
5、以上这些命令每次写起来比较多,很麻烦所以推荐大家配置别名:
比如提交代码的时候,完整命令是:git push origin HEAD:refs/for/develop%r=ahdkkyxq@163.com
但是我每次提交的时候只需要写:git psw 就行了很简单。
我常用的别名配置如下:
[alias]
st = status
ci = commit
br = branch
co = checkout
df = diff
ps = push origin develop:refs/for/develop
psw = push origin HEAD:refs/for/develop%r=ahdkkyxq@163.com
cm = commit --amend -m
这个文件名字叫.gitconfig 在:C:\Users\XXX\.gitconfig
6. 如果需要放弃本地修改,直接使用远程库,然后覆盖本地,以前傻傻地办法就是用心的目录重新clone一个,正确的是:
git fetch --all //先从远程获取全部代码,但是不合并
git reset --hard origin/develop // 将本地的最新标签指向远程拉下来的位置,即可
网友评论