git放弃追踪.env文件:

根目录. gitignore中添加忽略上传文件

配置说明:
以”/“开头表示目录;
以”*“开头表示通配多个字符;
以”?“开头表示通配单个字符;
以”[]“开头表示包含单个字符的匹配列表;
以”!”开头表示不忽略(跟踪)匹配到的文件或目录;

当你向版本库中添加时可能会出现 .gitignore 中的文件并没有生效,原因是.gitignore只能忽略未被追踪的文件,而git有本地缓存。如果增加的 .gitignore 文件原来被追踪过,则需要清除缓存后更新,如下:

git rm .env --cached

git commit -m “更新操作”

git克隆远程仓库指定分支,并在本地重命名

git clone -b <远程指定分支> <远程仓库地址> <本地文件夹名>

如:

git clone -b master_1025 git@gitee.com:dsse/sz-pc.git backend

git pull的时候发生冲突的解决方法之“error: Your local changes to the following files would be overwritten by merge”

方法一:保存本地修改

git stash

git stash pop

git pull

方法二、放弃本地修改,直接覆盖

1 git reset --hard
2 git pull

git删除分支

我现在在dev20181018分支上,想删除dev20181018分支

  1 先切换到别的分支: git checkout dev20180927

  2 删除本地分支: git branch -d dev20181018

  3 如果删除不了可以强制删除,git branch -D dev20181018

  4 有必要的情况下,删除远程分支(慎用):git push origin --delete dev20181018

版本回退

已经commit的但未push的情况

commit后面接着的一连串字符就是你提交的ID(图中箭头所示),,使用Git reset 加上commit ID就可以还原到你所需要的版本去.(commit ID很长,当然只需要输入前面5到6位字符既可)

git log 可以查看提交的日志

 git reset --hard HEAD ^ ( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset --hard HEAD~100 );

可以通过如下命令获取到已删除的版本号: git reflog 

git reset efce895 重新指向指定版本,可以是已删除的版本

撤销修改:(工作区,未add的代码区;暂存区,add了但未commit的代码存储区; 本地分支版本库,commit但未push的代码区)

如果你在本地改了一个文件但是还没有add到暂存区,现在你想撤销,这时你可以用 git checkout -- file 命令丢弃工作区的修改,让这个文件回到最近一次git commit或git add时的状态。

但是如果你的修改已经git add到暂存区了,庆幸的是,在commit之前,你发现了这个问题。用git status查看一下,修改只是添加到了暂存区,还没有提交,这时用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区,然后再用git checkout — file 丢弃工作区的修改:

1、在工作区的代码

git checkout -- a.txt   # 丢弃某个文件,或者
git checkout -- .       # 丢弃全部

注意:git checkout -- . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。

2、代码git add到缓存区,并未commit提交

git reset HEAD .  或者
git reset HEAD a.txt

这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化

3、git commit到本地分支、但没有git push到远程

git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>  # 回到其中你想要的某个版
或者
git reset --hard HEAD^  # 回到最新的一次提交
或者
git reset HEAD^  # 此时代码保留,回到 git add 之前

4、git push把修改提交到远程仓库
1)通过git reset是直接删除指定的commit

git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>
git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除

2)通过git revert是用一次新的commit来回滚之前的commit

git log # 得到你需要回退一次提交的commit id
git revert <commit_id>  # 撤销指定的版本,撤销也会作为一次提交进行保存

3) git revert 和 git reset的区别
– git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
– git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除

reset和revert的区别:

https://blog.csdn.net/asoar/article/details/84111841?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

1.pull 则是将远程主机的分支最新内容拉下来后与当前本地分支直接合并 fetch+merge

git pull origin master

2.git提交代码流程
git pull origin sim //将远程主机的sim分支最新内容拉下来后与当前本地分支直接合并 fetch+merge
git add .
git commit -m ‘上传说明’
git push origin mj2 //本地当前分支的代码推送到远程mj分支上
3.本地创建分支mj并切换到新的分支mj2上
git checkout -b mj2
4.查看本地分支
git branch
5.查看远程分支
git branch -r
6.冲突解决 [rejected] mj2 -> mj2 (fetch first) 慎用
git push -f
7.账号密码输入错误,需要回退 Ctrl+Backspace

//多git用户协同开发
1.git add .
2.git commit -m ‘xs’
3.git pull origin sim 到本地mj2分支
4.git pull origin culvert 把张文正的分支代码拉到我的本地合并(该代码也需从sim分支切出)
5.git push origin mj2 将最新代码推到自己的分支
6.打开测试服务器,在测试服当前分支拉取远程mj2分支进行代码更新

git查看远程仓库地址

git remote -v

修改源地址

#[GIT URL]为要修改的源地址

git remote set-url origin [GIT URL]

////////////////// 实例 ////////////////////////

git remote set-url origin git@yyyyyy.git

添加源地址

[NAME]为新的Git库源地址名

git remote add [NAME] [GIT URL]

////////////////// 实例 ////////////////////////

git remote add origin git@xxxxxx.git

删除源地址

git remote remove [NAME]

////////////////// 实例 ////////////////////////

git remote remove origin

git 更新远程分支列表

git fetch // 更新远程仓库的代码为最新的,本地仓库的代码还未被更新

git remote update origin --prune //可更新远程分支列表,显示出所有远程分支

Git本地分支和远程分支关联

1.如果远程新建了一个分支,本地没有该分支。

可以利用 git checkout –track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name。

git checkout --track origin/branch_name
或者   git checkout -b dev origin/dev 本地分支dev和远端dev关联

2.如果本地新建了一个分支 branch_name,但是在远程没有。或者远端也有是要有同名分支

这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用 git push –set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。

git push --set-upstream origin branch_name
简写 git push -u origin branch_name -u为关联意思

 2.1,如果本地有分支dev2,远端有分支dev,分支不同名,

git push -u origin dev2:dev  推送即可

如果远端分支dev跟新了,拉取下   git  pull  origin  dev:dev2   或者git pull origin dev

Git 修改本地及远程分支的名称

需要将分支br_rename_old修改为br_rename_new,执行如下步骤:
1、执行命令git checkout br_rename_old切换到br_rename_old分支,如果已经在这个分支下,可以不执行此步骤
2、执行命令git pull origin br_rename_old将代码更新到和远程仓库一致
3、执行命令git branch -m br_rename_old br_rename_new将本地仓库的br_rename_old的名称修改为br_rename_new
4、执行命令git push origin --delete br_rename_old将远程分支br_rename_old删除
5、执行命令git push --set-upstream origin br_rename_new将本地分支push到远程仓库

发表评论

电子邮件地址不会被公开。 必填项已用*标注