流程
1.git clone XXX
拉下项目代码
git clone -b 分支名 XXX 拉取一个项目的指定分支,比如dev
2.git pull origin master(或者其他分支)
更新项目代码,使代码是最近的更新
git pull origin(远程主机名) master(远程分支名):brantest(本地分支名)
git pull origin master:将远程origin主机的master分支拉取过来和本地的当前分支进行合并。
3.git branch
查看当前分支
4.git checkout -b shly(新建分支)
新建分支并进入新的分支
该命令可拆分为
git branch shly
git checkout shly
5.git status
修改代码后,查看状态
6.git add -A
将修改提到暂存区
git add . :提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add -u:提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add -A:提交所有变化
7.git commin -m '注释'
主要是将暂存区里的改动给提交到本地的版本库。
add commit 可以合并为一步 :
git commit -a -m SHLY-289
8.git push origin master(自己要提交的分支的名称)
也可以使用 git push --set-upstream origin 自己分支的名称
9.切换到其他分支
git checkout 其他分支
切换到其他分支的时候,代码也会变动
其他操作
1.删除分支:
查看所有分支: git branch -a
删除分支命令:git branch -d 分支名
然后带有remote的是远程分支 删除自己上传的分支 :git push origin --delete 分支名称
2.修改了很多文件,但有一个文件误操作,不想提交
可以在vs code左侧分支找到被修改的文件,然后右键discard change就可以恢复到原来的文件。
3.在一个分支上修改了代码,但还没有修改完,但因紧急情况需要切换到其他分支,又不想提交正在修改的分支。可以使用git stash命令,这个分支就会和上一次提交后的状态一致。等其他分支上的任务完成,可以再切换到这个分支,使用git stash apply恢复自己的工作。
4.git diff
比较具体在哪里做了修改。 git diff默认比较的是工作区和暂存取的内容。
(1). git diff filepath 工作区与暂存区比较
(2). git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较
(3). git diff --staged 或 --cached filepath 暂存区与HEAD比较
(4). git diff branchName filepath 当前分支的文件与branchName 分支的文件进行比较
(5). git diff commitId filepath 与某一次提交进行比较
退出按q即可。
5.commit id
获得最近一次commit的id
git rev-parse HEAD
git rev-parse --short HEAD
6.其他人的merge请求
merge,然后删除分支,有一个remove resource
7.修改分支名称
git branch -m 旧 新
8.拉取pull代码,显示冲突
找到提示冲突的文件,查看修改。
9.撤销修改 git checkout --readme.txt
把文件在工作区的修改全部撤销,如果文件还没有被放到暂存区add,撤销修改就回到和版本库一模一样的状态;如果已经添加到暂存区,又做了修改,撤销修改就回到暂存区的状态。在工作区不小心把某一个文件删除了,也可以使用这个命令从版本库进行恢复。
使用git reset HEAD <file>可以把暂存区的修改撤销掉(unstage)重新放回工作区。
10.查看某次提交具体做的修改
git show 最近一次提交做的修改;
git show commitid 某次提交做的修改;
概念理解
1.工作区:就是自己主机上写代码的项目代码;
2.暂存取:执行git add命令后,修改提交到暂存区;
3.分支:执行git commit命令后,暂存区的内容会提交到当前分支;
4.Git的版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支 master,以及指向master的一个指针叫HEAD。
问题
1.git切换到一个新的分支的时候,有没有初始代码,还是说必须得先pull.
2.远程代码pull下来之后,没有覆盖先前在另外一个分支上的代码,是正常的,只要正常提交就行。
3.git pull 拉取代码后,有冲突
git add .
git stash
git fetch --all
git reset --hard origin/feature/xnyy_project_config
git pull origin feature/xnyy_project_config
4.多次commit,可以通过git log查看commit id和对应的修改提示
想回退到上一个版本 git reset --hard HEAD^ (git用HEAD表示当前版本,上一个版本是HEAD^,上两个版本是HEAD^^,上100个可 以使用HEAD~100)
如果回退到上一个版本后,又想到最近的版本,方法就是找到最新的那次的commit_id,使用git reset --hard commit_id,在窗口使用 过命令git log,并且没有关闭窗口。 如果找不到commit_id,可以使用git reflog(用来记录每一次命令)。
使用git reflog 会给每一步操作赋一个编号
然后命令git reset --hard HEAD@{n},可以跳转到相应的位置进行回退。
注意:
1.要有一个什么都不操作,只进行pull代码的干净分支,这样要修改什么代码,新建分支取修改,可以保证代码的纯净;
参考:https://segmentfault.com/a/1190000015676846

被折叠的 条评论
为什么被折叠?



