参考:
Git 提交代码和更新代码
https://blog.csdn.net/Snow_loveLife/article/details/80519998
1 拉取
2 取消更改
git checkout
3 提交
4 更新
git pull (一句命令搞定)
首先,操作之前一定要看清分支!!
其次,提交代码之前一定要先更新代码!!
git branch -----查看当前分支
git pull -----更新代码到本地
提交代码:
1、在本地修改相应文件(或者文件新旧替换)
2、git add //文件名 (文件修改路径)
(注意路径要写对)
3、git status ----查看当前本地文件信息
4、 git commit -m “更改信息备注”
5、git push --------提交代码到当前分支
(我一般git push 之前会看一下commit状态:git status)
到此Git提交代码就完成啦!
1
Git冲突:commit your changes or stash them before you can merge. 解决办法
http://www.aikaiyuan.com/8875.html
用git pull来更新代码的时候,遇到了下面的问题:
1
2
3
4
error: Your local changes to the following files would be overwritten by merge:
xxx/xxx/xxx.php
Please, commit your changes or stash them before you can merge.
Aborting
出现这个问题的原因是其他人修改了xxx.php并提交到版本库中去了,而你本地也修改了xxx.php,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。
1、保留本地的修改 的改法
1)直接commit本地的修改 ----也一般不用这种方法
2)通过git stash ---- 通常用这种方法
1
2
3
git stash
git pull
git stash pop
通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
放弃本地修改 的改法 ----这种方法会丢弃本地修改的代码,而且不可找回
2、放弃本地修改 的改法 ----这种方法会丢弃本地修改的代码,而且不可找回
1
2
git reset --hard
git pull
2
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 ‘matching’
修改为 ‘simple’。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:
git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置:
git config --global push.default simple
参见 ‘git help config’ 并查找 ‘push.default’ 以获取更多信息。
(‘simple’ 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 ‘current’ 代替 ‘simple’ 模式)
Username for ‘https://git.dev.tencent.com’: xxxxxxx
Password for ‘https://caipeng_BLS@git.dev.tencent.com’:
Counting objects: 5, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 342 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
git add之后如何取消
前言:在开发中,有时已经 add 的代码,想要取消恢复更改的文件,那么怎么办呢?
1、git checkout — //未git add的文件
2、git reset HEAD //已经git add的文件,可以用这个取消add,然后用上一条命令恢复
3、git reset –hard HEAD //把全部更改的文件都恢复(小心使用,不然辛辛苦苦写的全没了)
git reset HEAD 可以全部恢复未提交状态
git命令-切换分支
http://www.cnblogs.com/smiler/p/6924583.html
Git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下:
- 查看远程分支
$ git branch -a
我在mxnet根目录下运行以上命令:
~/mxnet$ git branch -a
- master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/nnvm
remotes/origin/piiswrong-patch-1
remotes/origin/v0.9rc1
可以看到,我们现在在master分支下
- 查看本地分支
~/mxnet$ git branch
- master
- 切换分支
$ git checkout -b v0.9rc1 origin/v0.9rc1
Branch v0.9rc1 set up to track remote branch v0.9rc1 from origin.
Switched to a new branch ‘v0.9rc1’
#已经切换到v0.9rc1分支了
$ git branch
master
- v0.9rc1
#切换回master分支
$ git checkout master
Switched to branch ‘master’
Your branch is up-to-date with ‘origin/master’.
git放弃修改&放弃增加文件
https://www.cnblogs.com/ryanzheng/p/10443544.html
- 本地修改了一堆文件(并没有使用git add到暂存区),想放弃修改。
单个文件/文件夹:
git checkout – filename
所有文件/文件夹:
git checkout .
- 本地新增了一堆文件(并没有git add到暂存区),想放弃修改。
单个文件/文件夹:
$ rm filename / rm dir -rf
所有文件/文件夹:
$ git clean -xdf
// 删除新增的文件,如果文件已经已经git add到暂存区,并不会删除!
- 本地修改/新增了一堆文件,已经git add到暂存区,想放弃修改。
单个文件/文件夹:
git reset HEAD filename
所有文件/文件夹:
git reset HEAD .
- 本地通过git add & git commit 之后,想要撤销此次commit
git reset commit_id
这个id是你想要回到的那个节点,可以通过git log查看,可以只选前6位
// 撤销之后,你所做的已经commit的修改还在工作区!
git reset --hard commit_id
这个id是你想要回到的那个节点,可以通过git log查看,可以只选前6位
// 撤销之后,你所做的已经commit的修改将会清除,仍在工作区/暂存区的代码不会清除!
git 只拉取部分代码
GIT只拉取项目中的某个目录
https://www.jianshu.com/p/e6aff3098478
假设我的项目目录是:
--test
--lib
--bin
--build
--src
现在我只想在服务器上拉取 build 目录下的东西。
$ mkdir pro1
$ cd pro1
$ git init
Initialized empty Git repository in E:/pro1/.git/
$ git remote add -f origin https://github.com/XXXXX/test.git #拉取remote的all objects信息
Updating origin
remote: Counting objects: 522, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 522 (delta 124), reused 508 (delta 110), pack-reused 0
Receiving objects: 100% (522/522), 566.56 KiB | 261.00 KiB/s, done.
Resolving deltas: 100% (124/124), done.
From https://github.com/XXXXX/test
* [new branch] master -> origin/master
$ git config core.sparsecheckout true #开启sparse clone
$ echo "build" >> .git/info/sparse-checkout #设置需要pull的目录,*表示所有,!表示匹配相反的
$ less .git/info/sparse-checkout
build
$ git pull origin master #拉取
$ ls
build
git 获取当前git 代码的地址
git remote -v 查看所有关联的远程仓库信息,别名和地址等信息