git 相关资料收集

优秀文档

git 文档链接:

https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80

廖雪峰git教程 :https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/


常用方法

1、 查看状态 

git status


2、还原未添加的文件

git checkout “”文件路径“”


3、添加文件

git add “”文件路径“”


4、上传文件

git commit -m "注释"


5、下载远程库

git pull origin dev


6、上传到远程库

git push origin dev


7、查看分支

git branch

附加: 查看远程分支

git branch -a


8、创建分支

git branch "分支名"


10、切换分支

git checkout "分支名“”

 

11、git branch -d "分支名"

功能:删除分支

附加 : 删除远程分支

在Git v1.7.0 之后,可以使用这种语法删除远程分支:

     
     
1
     
     
$ git push origin --delete <branchName>

删除tag这么用:

     
     
1
     
     
git push origin --delete tag <tagname>

否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:

     
     
1
     
     
git push origin :<branchName>

这是删除tag的方法,推送一个空tag到远程tag:

     
     
1
2
     
     
git tag -d <tagname>
git push origin :refs/tags/<tagname>

12、创建并切换分支

git checkout -b "分支名“”


13、合并分支

	$ git merge dev

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

	$ git merge --no-ff -m "merge with no-ff" dev

14在远程创建一个与本地branch_name 分支同名的分支跟踪

 git push --set-upstream origin branch_name 来利用 


15、在本地创建一个与 branch_name 同名分支跟踪远程分支

git checkout --track orgin/branch_name 来


16、重命名本地分支

git branch -m "last name" "name beforce"

遇到的问题

问题一、解决冲突

1.冲突的产生

当我们向远程Git服务器提交某一个文件的修改时,恰巧这个文件相同的修改地方其他人也有修改,并且已经提交到服务器,这时冲突就产生了. 通常,当我们合并两个相同的地方都有修改的分支时,都会产生冲突.

2.文本文件冲突解决

出现冲突时git不知道如何自动合并,需要我们解决冲突手动合并. 如果是文本文件,git会在有冲突的地方作上标记(如 HEAD >>> ==== <<< HASH_ID等),标记哪些是当前分支的修改,哪些是其他分支的修改.参考这些标记,解决冲突比较简单.

3.二进制文件冲突解决

如果二进制文件发生冲突,不方便查看git插入的冲突标记, 解决比较棘手,通常最简单的解决方法是提前沟通好,相同修改的地方二选一. 
git checkout FILE --ours [ --theirs ]

–ours 表示检出当前分支,即保存当前分支的改动,丢弃另外分支的改动. 
–theirs 表示检出另外分支, 即保存另外分支的改动,丢弃当前分支的改动.

举个栗子: 
有分支A和B, 当前我们在分支A上, 需要把分支B合并到分支A, HashMap.c文件发生冲突了. 
git checkout HashMap.c –ours 表示冲突的地方采用A分支上的修改,丢弃B分支上的修改. 
git checkout HashMap.c –theirs 表示冲突的地方采用B分支上的修改,丢弃A分支上的修改.

解决完冲突后,就可以像往常一样 git add git commit了.


问题二、mklink 文件不能add的问题

git config core.symlinks true

问题三、 

如何把本地新建分支同步到 git hub 上(该分支在远程没有)?又如何在本地把git hub 上新建分支同步到本地(本地没有该分支)

1:其实在从远程分支分出来的分支都是跟踪分支(track),当对该分支进行 push 和 pull 时,如果该分支和远程分支同名 git 会知道推送到远程哪个分支,从哪个远程分支同步到本地分支。其实每次克隆一个仓库时,本地都会新建一个 master 分支track 远程的 origin/master。如果不同名,我们需要人为指定 git push origin branch_name


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


3:跟踪远程分支
1)如果 远程新建了一个分支本地没有该分支,可以利用  git checkout --track origin/branch_name ,这时本地会 新建一个 分支名叫  branch_name ,会 自动跟踪 远程的同名分支  branch_name

 从图中就可以看到本来远程有一个 test1 分支,本地没有,利用该指令后,本地分支就出现了 test1。

      2)用上面 1) 中方法, 得到的分支名永远 和远程分支名一样,如果想 新建一个本地分支不同名字,同时跟踪一个远程分支可以利用:
            git checkout -b   new_branch_name  branch_name
        这条指令本来是根据一个  branch_name 分支分出一个本地分支  new_branch_name,但是 如果所根据的分支  branch_name 是一个 远程分支名,那么本地的分支会 自动 track 远程分支。建议 跟踪分支被跟踪远程分支 同名


总结:一般我们就利用  git push --set-upstream origin branch_name 来 在远程创建一个 与本地branch_name 分支同名的分支跟踪;利用  git checkout --track orgin/branch_name 来在本地创建一个与  branch_name 同名分支 跟踪远程分支。



2





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值