Git 操作过程

一、初始化项目,并上传到git服务器

基本过程:创建远程仓库、初始化本地git仓库、将本地仓库于远程仓库关联起来、添加本地仓库想要提交的代码到本地git缓冲区,将本地仓库的本地分支于远程仓库的远程分支关联起来、提交代码。。

1. 在git服务器上创建同名git项目,并获取http地址

2. 本地git初始化项目git仓库,在项目目录下

$ git init

3. 将本地git仓库和远程仓库关联起来,并设置远程仓库名称

git remote add <name> <http地址>

例如:git remote add origin https://github.com/CraZYJH/demo.git

4. 添加项目文件到本地git缓冲区

第一种方法:git add -A  、git commit -m '初始化项目'

第二种方法:git commit -a -m '初始化项目'

5. 将本地分支关联远程分支并提交,git 默认在远程分支上创建与本地分支同名的分支

git push --set-upstream origin master

这就是将本地的master分支与origin 远程仓库关联起来并在远程仓库创建同名master分支,以后本地master 都提交到远程仓库中的origin/master分支上。upstream :上游的意思。

二、提交某一分支的修改

1. 查看当前分支的修改

git status

2. 查看想要查看的文件的修改

git diff <file_name>

3. 确认正确后,提交修改到暂存区

git add -A   或者 git add <file_file1> <file_name2> ...

4. 提交到本地仓库

git commit -m '修改信息'

5. 提交到远程仓库

git push

三、拉取远程分支修改到本地分支

当远程分支别人推了一版新的代码时,我们想要将代码拉下来,可以采用两种方式pull和fetch+merge。

pull和fetch+merge 不同点:

1. 使用pull

将远程分支最新代码更新合并到本地仓库区和工作区

git pull

2. 使用fetch 

- 将远程所有分支最新的commit更新到FETCHHEAD,记录远程分支最新的commit_id 和本地仓库区

- 将最新代码合并到工作区

git fetch

git merge

四、取消track某一文件:track 跟踪

git rm-r--cache <file_name>

untrack后,使用commit -a时,不会将其添加到暂存区中

之后会在.ignore 文件中将该untrack的文件添加进去,完成。

五、保存账号密码,避免每次push都要输入

1. 确保在git中输入过账号和密码

2. 输入下面语句即可

git config --global credential.helper store

六、暂存自己的修改,便于接着工作(特别有用)

试想一个场景:如果你正在一个分支上工作修改,leader让你改另外的分支的BUG或者对其他分支做一些操作。

我们知道如果一个分支上还没有commit的修改的话,不可以切换分支,但是又因为自己的工作未完成,不想commit,此时git stash就起作用了。

1. 将当前分支的修改暂存起来(此处不等于add+commit)

git stash

备份当前的工作区的内容,从最新你的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区修改的内容保存到Git栈中暂存起来。

2. 切换到别的分支工作,完成后切换回原来的工作分支,查看暂存列表

git stash list

显示Git栈内的所有备份,可以利用这个列表来决定从哪个地方恢复

3. 恢复暂存的修改到工作区

git stash apply <stash_name>      恢复暂存之后不删除暂存

git stash pop                                      恢复暂存之后删除暂存

4. 删除‘暂存’

git stash drop <stash_name>        从Git栈中删除最旧的一个暂存

七、将文件修改回退到某一状态

一些已经提交的或者已经修改的部分,想要再修改一下,或者删除已经提交的

1. 删除某些commit,将head重定位到某一commit(回溯到以前的版本)

git reflog         查看所有 commit_id

git reset --head <commit_id> 会将commit_id 前的所有commit修改删除

git reset <commit_id>              不会将commit_id前的commit删除,而是会将修改回退到本地工作区

git push origin HEAD --force  此步骤将服务器方也设置为相应的commit

2. 将文件修改恢复到当前已提交分支的原样(未git add情况下)撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本。

git checkout -- <file_name>

3.将文件修改恢复到当前已提交分支的原样(已经git add 情况下)

git reset HEAD   将add退回

git checkout -- <file_name>

4. 将文件修改恢复到已提交分支的原样(已经git commit 情况下)

git reset <commit_id>  此处的commit_id 可以是任意分支的commit_id

git checkout -- <file_name>

八、版本的回溯与前进

有时候徐娅回溯或前进到以前的版本   或    回溯前进到以前的commit.

只要记住 commit_id   就可以在版本之间来回的穿梭,与七.1一样。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。